diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2025-10-23 13:42:08 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2025-10-23 14:42:50 -0400 |
| commit | db6d95ea565c75d01192160ce34675a831cb4103 (patch) | |
| tree | dd0984cb301540ef1922cceca81e35580f2a0d63 /python/types.py | |
| parent | b638ca2598b64d4b8b29cd919e7fbaf126cb749e (diff) | |
Fix lost type attributes in TypeBulider Python API
Diffstat (limited to 'python/types.py')
| -rw-r--r-- | python/types.py | 36 |
1 files changed, 6 insertions, 30 deletions
diff --git a/python/types.py b/python/types.py index 222f256e..fcc99aeb 100644 --- a/python/types.py +++ b/python/types.py @@ -621,9 +621,9 @@ class TypeBuilder: TypeClass.IntegerTypeClass: IntegerType, TypeClass.FloatTypeClass: FloatType, TypeClass.PointerTypeClass: PointerType, TypeClass.ArrayTypeClass: ArrayType, TypeClass.FunctionTypeClass: FunctionType, TypeClass.WideCharTypeClass: WideCharType, - # TypeClass.StructureTypeClass:StructureType, - # TypeClass.EnumerationTypeClass:EnumerationType, - # TypeClass.NamedTypeReferenceClass:NamedTypeReferenceType, + TypeClass.StructureTypeClass: StructureType, + TypeClass.EnumerationTypeClass: EnumerationType, + TypeClass.NamedTypeReferenceClass: NamedTypeReferenceType, } return Types[self.type_class](self.finalized, self.platform, self.confidence) @@ -1450,14 +1450,6 @@ class StructureBuilder(TypeBuilder): assert type_builder_handle is not None, "core.BNCreateStructureTypeBuilderWithBuilder returned None" return cls(type_builder_handle, structure_builder_handle, platform, confidence) - def immutable_copy(self) -> 'StructureType': - assert self.builder_handle is not None - structure_handle = core.BNFinalizeStructureBuilder(self.builder_handle) - assert structure_handle is not None, "core.BNFinalizeStructureBuilder returned None" - handle = core.BNCreateStructureType(structure_handle) - assert handle is not None, "core.BNCreateStructureType returned None" - return StructureType(handle, self.platform, self.confidence) - @property def members(self) -> List[StructureMember]: """Structure member list (read-only)""" @@ -1683,14 +1675,6 @@ class EnumerationBuilder(TypeBuilder): assert type_builder_handle is not None, "core.BNCreateEnumerationTypeBuilderWithBuilder returned None" return cls(type_builder_handle, enum_builder_handle, platform, confidence) - def immutable_copy(self) -> 'EnumerationType': - enum_handle = core.BNFinalizeEnumerationBuilder(self.enum_builder_handle) - assert enum_handle is not None, "core.BNFinalizeEnumerationBuilder returned None" - _signed = BoolWithConfidence.get_core_struct(self.signed) - handle = core.BNCreateEnumerationType(None, enum_handle, self.width, _signed) - assert handle is not None, "core.BNCreateEnumerationType returned None" - return EnumerationType(handle, self.platform, self.confidence) - @property def members(self) -> List[EnumerationMember]: """Enumeration member list (read-only)""" @@ -1808,17 +1792,6 @@ class NamedTypeReferenceBuilder(TypeBuilder): assert type_builder_handle is not None, "core.BNCreateNamedTypeReferenceBuilderWithBuilder returned None" return cls(type_builder_handle, ntr_builder_handle, platform, confidence) - def immutable_copy(self) -> 'NamedTypeReferenceType': - ntr_handle = core.BNFinalizeNamedTypeReferenceBuilder(self.ntr_builder_handle) - assert ntr_handle is not None, "core.BNFinalizeEnumerationBuilder returned None" - - _const = BoolWithConfidence.get_core_struct(self.const) - _volatile = BoolWithConfidence.get_core_struct(self.volatile) - - handle = core.BNCreateNamedTypeReference(ntr_handle, self.width, self.alignment, _const, _volatile) - assert handle is not None, "core.BNCreateEnumerationType returned None" - return NamedTypeReferenceType(handle, self.platform, self.confidence) - @property def name(self) -> QualifiedName: return QualifiedName._from_core_struct(core.BNGetTypeReferenceBuilderName(self.ntr_builder_handle)) @@ -2603,6 +2576,7 @@ class StructureType(Type): assert structure_handle is not None, "core.BNGetTypeStructure returned None" structure_builder_handle = core.BNCreateStructureBuilderFromStructure(structure_handle) assert structure_builder_handle is not None, "core.BNCreateStructureBuilderFromStructure returned None" + core.BNSetStructureBuilder(type_builder_handle, structure_builder_handle) return StructureBuilder(type_builder_handle, structure_builder_handle, self.platform, self.confidence) @classmethod @@ -2912,6 +2886,7 @@ class EnumerationType(IntegerType): assert enumeration_handle is not None, "core.BNGetTypeEnumeration returned None" enumeration_builder_handle = core.BNCreateEnumerationBuilderFromEnumeration(enumeration_handle) assert enumeration_builder_handle is not None, "core.BNCreateEnumerationBuilderFromEnumeration returned None" + core.BNSetEnumerationBuilder(type_builder_handle, enumeration_builder_handle) return EnumerationBuilder(type_builder_handle, enumeration_builder_handle, self.platform, self.confidence) def generate_named_type_reference(self, guid: str, name: QualifiedNameType): @@ -3253,6 +3228,7 @@ class NamedTypeReferenceType(Type): self.named_type_class, self.type_id, self.name._to_core_struct() ) assert ntr_builder_handle is not None, "core.BNCreateNamedTypeBuilder returned None" + core.BNSetNamedTypeReferenceBuilder(type_builder_handle, ntr_builder_handle) return NamedTypeReferenceBuilder(type_builder_handle, ntr_builder_handle, self.platform, self.confidence) @classmethod |
