diff options
| author | Mark Rowe <mrowe@bdash.net.nz> | 2024-11-24 16:55:39 -0800 |
|---|---|---|
| committer | kat <kat@vector35.com> | 2025-01-10 12:23:07 -0500 |
| commit | 1f0be2385be2c796152e12ffebc229f10e3ffc28 (patch) | |
| tree | da2e3d231fc9343afc6c876fb2cd1fb5bd17bfc2 /view/sharedcache/core/SharedCache.h | |
| parent | 1dc9179158d8af2555e9182c6e0425b86d378909 (diff) | |
[SharedCache] Cache type libraries in the view-specific state
They're surprisingly expensive to look up.
Diffstat (limited to 'view/sharedcache/core/SharedCache.h')
| -rw-r--r-- | view/sharedcache/core/SharedCache.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/view/sharedcache/core/SharedCache.h b/view/sharedcache/core/SharedCache.h index 7b198305..1dcc3033 100644 --- a/view/sharedcache/core/SharedCache.h +++ b/view/sharedcache/core/SharedCache.h @@ -603,6 +603,7 @@ namespace SharedCacheCore { explicit SharedCache(BinaryNinja::Ref<BinaryNinja::BinaryView> rawView); virtual ~SharedCache(); +private: std::optional<SharedCacheMachOHeader> LoadHeaderForAddress( std::shared_ptr<VM> vm, uint64_t address, std::string installName); void InitializeHeader( @@ -612,6 +613,8 @@ namespace SharedCacheCore { std::vector<Ref<Symbol>> ParseExportTrie( std::shared_ptr<MMappedFileAccessor> linkeditFile, SharedCacheMachOHeader header); + Ref<TypeLibrary> TypeLibraryForImage(const std::string& installName); + const State& State() const { return *m_state; } struct State& MutableState() { AssertMutable(); return *m_state; } |
