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

Method _build_symbol_cache

python/binaryview.py:1959–1979  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1957 return self._symbol_cache[key]
1958
1959 def _build_symbol_cache(self):
1960 count = ctypes.c_ulonglong(0)
1961 self._symbol_list = core.BNGetSymbols(self._view.handle, count, None)
1962 assert self._symbol_list is not None, "core.BNGetSymbols returned None"
1963 self._symbol_cache = {}
1964 self._count = count.value
1965 for i in range(len(self)):
1966 _handle = core.BNNewSymbolReference(self._symbol_list[i])
1967 assert _handle is not None, "core.BNNewSymbolReference returned None"
1968 sym = _types.CoreSymbol(_handle)
1969 try:
1970 if sym.raw_name in self._symbol_cache:
1971 self._symbol_cache[sym.raw_name].append(sym)
1972 else:
1973 self._symbol_cache[sym.raw_name] = [sym]
1974 except UnicodeDecodeError:
1975 mapped_str = sym.raw_bytes.decode('charmap')
1976 if mapped_str in self._symbol_cache:
1977 self._symbol_cache[mapped_str].append(sym)
1978 else:
1979 self._symbol_cache[mapped_str] = [sym]
1980
1981 def __iter__(self) -> Iterator[str]:
1982 if self._symbol_cache is None:

Callers 6

__iter__Method · 0.95
__next__Method · 0.95
__len__Method · 0.95
keysMethod · 0.95
itemsMethod · 0.95
valuesMethod · 0.95

Calls 2

appendMethod · 0.45
decodeMethod · 0.45

Tested by

no test coverage detected