MCPcopy Create free account
hub / github.com/FEX-Emu/FEX / HandleTypeDefDeclCursor

Function HandleTypeDefDeclCursor

Scripts/StructPackVerifier.py:280–316  ·  view source on GitHub ↗
(Arch, Cursor)

Source from the content-addressed store, hash-verified

278
279
280def HandleTypeDefDeclCursor(Arch, Cursor):
281 TypeDefType = Cursor.underlying_typedef_type
282 CanonicalType = TypeDefType.get_canonical()
283
284 TypeDefName = Cursor.type.get_typedef_name()
285
286 if (TypeDefType.kind == TypeKind.ELABORATED and CanonicalType.kind == TypeKind.RECORD):
287 if (len(TypeDefName) != 0):
288 HandleTypeDefDecl(Arch, Cursor, TypeDefName)
289
290 # Append namespace
291 Arch.NamespaceScope.append(TypeDefName)
292 SetNamespace(Arch)
293
294 Arch = HandleCursor(Arch, Cursor)
295 #StructType = Cursor.type
296 #Struct = StructDefinition(
297 # Name = TypeDefName,
298 # Size = CanonicalType.get_size())
299 #Arch.Structs[TypeDefName] = Struct
300
301 ## Handle children
302 #Arch.Structs[TypeDefName] = HandleStructElements(Arch, Struct, Cursor)
303
304 # Pop namespace off
305 Arch.NamespaceScope.pop()
306 SetNamespace(Arch)
307 else:
308 if (len(TypeDefName) != 0):
309 Def = Cursor.get_definition()
310
311 VarDecl = VarDeclDefinition(
312 Name = TypeDefName,
313 Size = CanonicalType.get_size())
314 Arch.VarDecls[VarDecl.Name] = HandleVarDeclElements(Arch, VarDecl, Cursor)
315
316 return Arch
317
318def HandleStructElements(Arch, Struct, Cursor):
319 for Child in Cursor.get_children():

Callers 3

HandleStructElementsFunction · 0.70
HandleTypeDefDeclFunction · 0.70
HandleCursorFunction · 0.70

Calls 7

appendMethod · 0.80
popMethod · 0.80
HandleTypeDefDeclFunction · 0.70
SetNamespaceFunction · 0.70
HandleCursorFunction · 0.70
VarDeclDefinitionClass · 0.70
HandleVarDeclElementsFunction · 0.70

Tested by

no test coverage detected