diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2025-05-30 14:21:14 -0600 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2025-06-03 13:42:54 -0600 |
| commit | 37d52c95d94b8a586c5d59fb500a7b35f3e272dc (patch) | |
| tree | e535f845fa0fd2947e245da187bde01604356c8d /ui | |
| parent | 8ef932b35e76f670611b79a2fcba88c6f8e15169 (diff) | |
Add UI action and API to flip conditions during HLIL restructuring
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/commands.h | 1 | ||||
| -rw-r--r-- | ui/flowgraphwidget.h | 3 | ||||
| -rw-r--r-- | ui/linearview.h | 3 |
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); |
