summaryrefslogtreecommitdiff
path: root/ui
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-05-30 14:21:14 -0600
committerRusty Wagner <rusty.wagner@gmail.com>2025-06-03 13:42:54 -0600
commit37d52c95d94b8a586c5d59fb500a7b35f3e272dc (patch)
treee535f845fa0fd2947e245da187bde01604356c8d /ui
parent8ef932b35e76f670611b79a2fcba88c6f8e15169 (diff)
Add UI action and API to flip conditions during HLIL restructuring
Diffstat (limited to 'ui')
-rw-r--r--ui/commands.h1
-rw-r--r--ui/flowgraphwidget.h3
-rw-r--r--ui/linearview.h3
3 files changed, 7 insertions, 0 deletions
diff --git a/ui/commands.h b/ui/commands.h
index 7fb3f539..aed0fbf6 100644
--- a/ui/commands.h
+++ b/ui/commands.h
@@ -97,6 +97,7 @@ TypeRef GetFunctionType(BinaryViewRef data, TypeRef type);
std::optional<uint64_t> getFoldableExprAddress(
BinaryNinja::HighLevelILFunction* hlil, const HighlightTokenState& highlight);
+std::optional<uint64_t> getInvertableConditionAddress(BinaryNinja::HighLevelILFunction* hlil, size_t instrIndex);
/*!
@}
diff --git a/ui/flowgraphwidget.h b/ui/flowgraphwidget.h
index c7af8aa9..b69ec38b 100644
--- a/ui/flowgraphwidget.h
+++ b/ui/flowgraphwidget.h
@@ -168,6 +168,8 @@ class BINARYNINJAUIAPI FlowGraphWidget :
BNDeadStoreElimination getCurrentVariableDeadStoreElimination();
std::optional<uint64_t> getCurrentFoldableExprAddress();
BNExprFolding getCurrentExprFolding();
+ std::optional<uint64_t> getCurrentInvertableConditionAddress();
+ bool getCurrentConditionInverted();
std::optional<std::pair<BinaryNinja::Variable, BinaryNinja::Variable>> getMergeVariablesAtCurrentLocation();
protected:
@@ -398,6 +400,7 @@ class BINARYNINJAUIAPI FlowGraphWidget :
void setCurrentVariableDeadStoreElimination(BNDeadStoreElimination elimination);
void setCurrentExprFolding(BNExprFolding folding);
+ void toggleConditionInverted();
void splitToNewTabAndNavigateFromCursorPosition();
void splitToNewWindowAndNavigateFromCursorPosition();
void splitToNewPaneAndNavigateFromCursorPosition();
diff --git a/ui/linearview.h b/ui/linearview.h
index e5305aa8..2ea8e37f 100644
--- a/ui/linearview.h
+++ b/ui/linearview.h
@@ -318,6 +318,8 @@ class BINARYNINJAUIAPI LinearView : public QAbstractScrollArea, public View, pub
BNDeadStoreElimination getCurrentVariableDeadStoreElimination();
std::optional<uint64_t> getCurrentFoldableExprAddress();
BNExprFolding getCurrentExprFolding();
+ std::optional<uint64_t> getCurrentInvertableConditionAddress();
+ bool getCurrentConditionInverted();
void setDataButtonVisible(bool visible);
std::optional<std::pair<BinaryNinja::Variable, BinaryNinja::Variable>> getMergeVariablesAtCurrentLocation();
@@ -409,6 +411,7 @@ private Q_SLOTS:
void setCurrentVariableDeadStoreElimination(BNDeadStoreElimination elimination);
void setCurrentExprFolding(BNExprFolding folding);
+ void toggleConditionInverted();
Q_SIGNALS:
void notifyResizeEvent(int width, int height);