summaryrefslogtreecommitdiff
path: root/view/sharedcache/core/SharedCache.h
diff options
context:
space:
mode:
authorMark Rowe <mrowe@bdash.net.nz>2024-11-24 16:55:39 -0800
committerkat <kat@vector35.com>2025-01-10 12:23:07 -0500
commit1f0be2385be2c796152e12ffebc229f10e3ffc28 (patch)
treeda2e3d231fc9343afc6c876fb2cd1fb5bd17bfc2 /view/sharedcache/core/SharedCache.h
parent1dc9179158d8af2555e9182c6e0425b86d378909 (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.h3
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; }