diff options
| author | Peter LaFosse <peter@vector35.com> | 2024-02-08 11:33:51 -0500 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2024-02-08 12:21:31 -0500 |
| commit | bae3056d1bed0331a466ea19dedfca68bc023232 (patch) | |
| tree | eca1a1f5709863690fdc562cb5081b0af993e9c2 | |
| parent | 533b108f96f9073fd4e075ccd330c07713a49d99 (diff) | |
Convert some assertions to raise ValueError in NTR creation
| -rw-r--r-- | python/typeparser.py | 2 | ||||
| -rw-r--r-- | python/types.py | 15 |
2 files changed, 12 insertions, 5 deletions
diff --git a/python/typeparser.py b/python/typeparser.py index d56f6b59..e4a6ef2e 100644 --- a/python/typeparser.py +++ b/python/typeparser.py @@ -481,7 +481,7 @@ class TypeParser(metaclass=_TypeParserMetaclass): :param source: Source code to parse :param platform: Platform to assume the types are relevant to :param existing_types: Optional map of all existing types to use for parsing context - :return: A tuple of (result, errors) where result is a tuple of (type, name) or + :return: A tuple of (result, errors) where result is a tuple of (name, type) or None of there was a fatal error. """ raise NotImplementedError("Not implemented") diff --git a/python/types.py b/python/types.py index 57c0824c..de4a080e 100644 --- a/python/types.py +++ b/python/types.py @@ -2196,7 +2196,11 @@ class Type: @staticmethod def named_type_from_registered_type(view: 'binaryview.BinaryView', name: QualifiedNameType) -> 'NamedTypeReferenceType': - return NamedTypeReferenceType.create_from_registered_type(view, name) + type = view.get_type_by_name(name) + if type is None: + raise ValueError(f"Type {name} does not exist in BinaryView") + assert type.registered_name is not None + return NamedTypeReferenceType.create_from_type(name, type, type.registered_name.type_id) @staticmethod def enumeration_type( @@ -2963,11 +2967,13 @@ class NamedTypeReferenceType(Type): def __init__( self, handle, platform: Optional['_platform.Platform'] = None, confidence: int = core.max_confidence, ntr_handle=None ): - assert handle is not None, "Attempting to create NamedTypeReferenceType handle which is None" + if handle is None: + raise ValueError("Attempting to create NamedTypeReferenceType handle which is None") super(NamedTypeReferenceType, self).__init__(handle, platform, confidence) if ntr_handle is None: ntr_handle = core.BNGetTypeNamedTypeReference(handle) - assert ntr_handle is not None, "core.BNGetTypeNamedTypeReference returned None" + if ntr_handle is None: + raise ValueError("No Registered NamedTypeReference exists for this type") self.ntr_handle = ntr_handle def mutable_copy(self): @@ -3006,7 +3012,8 @@ class NamedTypeReferenceType(Type): const: BoolWithConfidenceType = False, volatile: BoolWithConfidenceType = False ): """Create a NamedTypeReferenceType from a BNNamedTypeReference handle""" - assert ntr_handle is not None, "Attempting to create NamedTypeReferenceType from None handle" + if ntr_handle is None: + raise ValueError("Attempting to create NamedTypeReferenceType from None handle") _const = BoolWithConfidence.get_core_struct(const) _volatile = BoolWithConfidence.get_core_struct(volatile) core_type = core.BNCreateNamedTypeReference(ntr_handle, width, alignment, _const, _volatile) |
