summaryrefslogtreecommitdiff
path: root/view/sharedcache/core
diff options
context:
space:
mode:
Diffstat (limited to 'view/sharedcache/core')
-rw-r--r--view/sharedcache/core/SharedCacheView.cpp4
-rw-r--r--view/sharedcache/core/Utility.cpp5
2 files changed, 8 insertions, 1 deletions
diff --git a/view/sharedcache/core/SharedCacheView.cpp b/view/sharedcache/core/SharedCacheView.cpp
index b226e302..e9699ab1 100644
--- a/view/sharedcache/core/SharedCacheView.cpp
+++ b/view/sharedcache/core/SharedCacheView.cpp
@@ -956,6 +956,10 @@ bool SharedCacheView::InitController()
m_logger->LogDebug("Loading images using pattern: %s", autoLoadPattern.c_str());
{
+ // TODO: Refusing to add undo action "Added section libsystem_c.dylib::__macho_header", there is literally
+ // TODO: no way around this warning as undo actions are implicit with user sections, for more detail see:
+ // TODO: - https://github.com/Vector35/binaryninja-api/issues/6742
+ // TODO: - https://github.com/Vector35/binaryninja-api/issues/6289
// Load all images that match the `autoLoadPattern`.
auto startTime = std::chrono::high_resolution_clock::now();
size_t loadedImages = 0;
diff --git a/view/sharedcache/core/Utility.cpp b/view/sharedcache/core/Utility.cpp
index 8f49c6bf..6f8323bf 100644
--- a/view/sharedcache/core/Utility.cpp
+++ b/view/sharedcache/core/Utility.cpp
@@ -90,8 +90,11 @@ void ApplySymbol(Ref<BinaryView> view, Ref<TypeLibrary> typeLib, Ref<Symbol> sym
// Make sure to check for already added function from the function table.
// Unless we have retrieved a type here we don't need to make a new function.
func = view->GetAnalysisFunction(targetPlatform, symbolAddress);
- if (!func || selectedType)
+ if (!func || selectedType != nullptr)
func = view->AddFunctionForAnalysis(targetPlatform, symbolAddress, false, selectedType);
+ // The above function might be overwritten so we also want to apply the type here.
+ if (func && selectedType != nullptr)
+ func->ApplyAutoDiscoveredType(selectedType);
}
else
{