summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2025-01-13 11:26:18 -0500
committerBrian Potchik <brian@vector35.com>2025-01-13 11:26:18 -0500
commit768bf0dd364239786b9594f60ced85b331ebda5f (patch)
tree81e168b40b1b10d9a9f4cc4228a4b2f643260da4
parente95dc2c36a40814703109eafbf7b0112da084504 (diff)
Move all FeatureMap processing to the background.
-rw-r--r--ui/featuremap.h13
-rw-r--r--ui/notificationsdispatcher.h4
2 files changed, 4 insertions, 13 deletions
diff --git a/ui/featuremap.h b/ui/featuremap.h
index 17407d1e..d21760ec 100644
--- a/ui/featuremap.h
+++ b/ui/featuremap.h
@@ -33,7 +33,7 @@ class SplitPaneWidget;
\ingroup featuremap
*/
-class BINARYNINJAUIAPI FeatureMap : public QWidget, public BinaryNinja::BinaryDataNotification
+class BINARYNINJAUIAPI FeatureMap : public QWidget
{
Q_OBJECT
@@ -42,7 +42,6 @@ class BINARYNINJAUIAPI FeatureMap : public QWidget, public BinaryNinja::BinaryDa
std::unique_ptr<QImage> m_staticImage = nullptr;
std::vector<BNAddressRange> m_ranges;
- SplitPaneWidget* m_owner = nullptr;
BinaryViewRef m_data;
std::unique_ptr<NotificationsDispatcher> m_dispatcher = nullptr;
@@ -81,15 +80,7 @@ class BINARYNINJAUIAPI FeatureMap : public QWidget, public BinaryNinja::BinaryDa
void renderDataVariable(const BinaryNinja::DataVariable& var, bool ignoreString = false);
- virtual void OnAnalysisFunctionAdded(BinaryNinja::BinaryView* data, BinaryNinja::Function* func) override;
- virtual void OnAnalysisFunctionRemoved(BinaryNinja::BinaryView* data, BinaryNinja::Function* func) override;
- virtual void OnAnalysisFunctionUpdated(BinaryNinja::BinaryView* data, BinaryNinja::Function* func) override;
- virtual void OnDataVariableAdded(BinaryNinja::BinaryView* data, const BinaryNinja::DataVariable& var) override;
- virtual void OnDataVariableRemoved(BinaryNinja::BinaryView* data, const BinaryNinja::DataVariable& var) override;
- virtual void OnDataVariableUpdated(BinaryNinja::BinaryView* data, const BinaryNinja::DataVariable& var) override;
- virtual void OnStringFound(BinaryNinja::BinaryView* data, BNStringType type, uint64_t offset, size_t len) override;
- virtual void OnStringRemoved(BinaryNinja::BinaryView* data, BNStringType type, uint64_t offset, size_t len) override;
-
+ uint8_t getSymbolColor(const SymbolRef& symbol);
void drawImageRect(uint64_t addr, size_t len, uint8_t color);
virtual QSize sizeHint() const override;
diff --git a/ui/notificationsdispatcher.h b/ui/notificationsdispatcher.h
index f3b3a7bd..05073525 100644
--- a/ui/notificationsdispatcher.h
+++ b/ui/notificationsdispatcher.h
@@ -165,8 +165,8 @@ public:
void addSource(NotificationType source) { m_source = static_cast<NotificationType>(static_cast<uint64_t>(m_source) | static_cast<uint64_t>(source)); }
NotificationType getSource() const { return m_source; }
NotificationTypes getSources() const { return static_cast<NotificationTypes>(m_source); }
- bool isObjectRemoval() const { return (m_source & (NotificationType::DataVariableRemoved | NotificationType::FunctionRemoved)); }
- bool isRemoval() const { return (m_source & (NotificationType::DataVariableRemoved | NotificationType::FunctionRemoved | NotificationType::SymbolRemoved)); }
+ bool isObjectRemoval() const { return (m_source & (NotificationType::DataVariableRemoved | NotificationType::FunctionRemoved | NotificationType::StringRemoved)); }
+ bool isRemoval() const { return (m_source & (NotificationType::DataVariableRemoved | NotificationType::FunctionRemoved | NotificationType::SymbolRemoved | NotificationType::StringRemoved)); }
};