MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / __iter__

Method __iter__

python/metadata.py:117–133  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

115 return not self.__eq__(other)
116
117 def __iter__(self):
118 if self.is_array:
119 for i in range(core.BNMetadataSize(self.handle)):
120 yield Metadata(handle=core.BNMetadataGetForIndex(self.handle, i)).value
121 elif self.is_dict:
122 result = core.BNMetadataGetValueStore(self.handle)
123 assert result is not None, "core.BNMetadataGetValueStore returned None"
124 try:
125 for i in range(result.contents.size):
126 if isinstance(result.contents.keys[i], bytes):
127 yield result.contents.keys[i].decode("utf-8")
128 else:
129 yield result.contents.keys[i]
130 finally:
131 core.BNFreeMetadataValueStore(result)
132 else:
133 raise TypeError("Metadata object doesn't support iteration")
134
135 def __getitem__(self, value):
136 if self.is_array:

Callers

nothing calls this directly

Calls 2

MetadataClass · 0.70
decodeMethod · 0.45

Tested by

no test coverage detected