From d2e0420679ad9cfc0a25ccf768cdfef7bb14c978 Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Mon, 15 Jan 2024 10:10:19 -0500 Subject: Add 'Merge Variables Here' action --- ui/flowgraphwidget.h | 2 ++ ui/linearview.h | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/ui/flowgraphwidget.h b/ui/flowgraphwidget.h index 631c58c8..c267a1d0 100644 --- a/ui/flowgraphwidget.h +++ b/ui/flowgraphwidget.h @@ -160,6 +160,7 @@ class BINARYNINJAUIAPI FlowGraphWidget : void recenterUpdatedGraph(FlowGraphRef oldGraph, int oldXOfs, int oldYOfs); BNDeadStoreElimination getCurrentVariableDeadStoreElimination(); + std::optional> getMergeVariablesAtCurrentLocation(); protected: virtual void paintEvent(QPaintEvent* event) override; @@ -361,6 +362,7 @@ class BINARYNINJAUIAPI FlowGraphWidget : void tagAddressAccepted(TagTypeRef tt); void manageAddressTags(); void mergeVariables(); + void mergeVariablesAtCurrentLocation(); void splitVariable(); void convertToNop(); diff --git a/ui/linearview.h b/ui/linearview.h index 3353967b..7f590ce0 100644 --- a/ui/linearview.h +++ b/ui/linearview.h @@ -3,6 +3,8 @@ #include #include #include +#include +#include #include "binaryninjaapi.h" #include "viewframe.h" #include "render.h" @@ -303,6 +305,7 @@ class BINARYNINJAUIAPI LinearView : public QAbstractScrollArea, public View, pub BNDeadStoreElimination getCurrentVariableDeadStoreElimination(); void setDataButtonVisible(bool visible); + std::optional> getMergeVariablesAtCurrentLocation(); private Q_SLOTS: void adjustSize(int width, int height); @@ -359,6 +362,7 @@ private Q_SLOTS: void createStruct(); void createNewTypes(); void mergeVariables(); + void mergeVariablesAtCurrentLocation(); void splitVariable(); //! Get the length of of the string (if there is one) starting at the -- cgit v1.3.1