From a843a47e36cb1a166623abac70a38d716743c485 Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Thu, 11 May 2023 15:06:07 -0400 Subject: Fix binaryview metadata bool handling --- python/metadata.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'python') diff --git a/python/metadata.py b/python/metadata.py index c69fe24e..3fe552fe 100644 --- a/python/metadata.py +++ b/python/metadata.py @@ -39,13 +39,13 @@ class Metadata: """ if handle is not None: self.handle = handle + elif isinstance(value, bool): + self.handle = core.BNCreateMetadataBooleanData(value) elif isinstance(value, int): if signed: self.handle = core.BNCreateMetadataSignedIntegerData(value) else: self.handle = core.BNCreateMetadataUnsignedIntegerData(value) - elif isinstance(value, bool): - self.handle = core.BNCreateMetadataBooleanData(value) elif isinstance(value, str): self.handle = core.BNCreateMetadataStringData(value) elif isinstance(value, bytes): @@ -151,6 +151,11 @@ class Metadata: return str(core.BNMetadataGetString(self.handle)) raise ValueError("Metadata object not a string") + def __bool__(self): + if self.is_boolean: + return bool(core.BNMetadataGetBoolean(self.handle)) + raise ValueError("Metadata object not a boolean") + def __bytes__(self): try: length = ctypes.c_ulonglong() -- cgit v1.3.1