Skip to content

Commit 82dd5d4

Browse files
committed
Make call param hints more configurable & support more param types for hint deduplication
1 parent df3c57d commit 82dd5d4

File tree

6 files changed

+25
-3
lines changed

6 files changed

+25
-3
lines changed

basicblock.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,17 @@ void DisassemblySettings::SetAddressBaseOffset(uint64_t addressBaseOffset)
113113
BNSetDisassemblyAddressBaseOffset(m_object, addressBaseOffset);
114114
}
115115

116+
BNDisassemblyCallParameterHints DisassemblySettings::GetCallParameterHints() const
117+
{
118+
return BNGetDisassemblyCallParameterHints(m_object);
119+
}
120+
121+
122+
void DisassemblySettings::SetCallParameterHints(BNDisassemblyCallParameterHints hints)
123+
{
124+
BNSetDisassemblyCallParameterHints(m_object, hints);
125+
}
126+
116127

117128
DisassemblyTextLine::DisassemblyTextLine()
118129
{

binaryninjaapi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9824,6 +9824,8 @@ namespace BinaryNinja {
98249824
void SetAddressMode(BNDisassemblyAddressMode mode);
98259825
uint64_t GetAddressBaseOffset() const;
98269826
void SetAddressBaseOffset(uint64_t addressBaseOffset);
9827+
BNDisassemblyCallParameterHints GetCallParameterHints() const;
9828+
void SetCallParameterHints(BNDisassemblyCallParameterHints hints);
98279829
};
98289830

98299831
/*!

binaryninjacore.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,6 @@ extern "C"
697697
ExpandLongOpcode = 2,
698698
ShowVariablesAtTopOfGraph = 3,
699699
ShowVariableTypesWhenAssigned = 4,
700-
ShowCallParameterNames = 6,
701700
ShowRegisterHighlight = 7,
702701
ShowFunctionAddress = 8,
703702
ShowFunctionHeader = 9,
@@ -731,6 +730,13 @@ extern "C"
731730
DisassemblyAddressModeFlagsMask = 0xFFFF0000,
732731
} BNDisassemblyAddressMode;
733732

733+
typedef enum BNDisassemblyCallParameterHints
734+
{
735+
NeverShowMatchingParameterHints,
736+
AlwaysShowParameterHints,
737+
NeverShowParameterHints,
738+
} BNDisassemblyCallParameterHints;
739+
734740
typedef enum BNTypeClass
735741
{
736742
VoidTypeClass = 0,
@@ -5134,6 +5140,8 @@ extern "C"
51345140
BINARYNINJACOREAPI void BNSetDisassemblyAddressMode(BNDisassemblySettings* settings, BNDisassemblyAddressMode mode);
51355141
BINARYNINJACOREAPI uint64_t BNGetDisassemblyAddressBaseOffset(BNDisassemblySettings* settings);
51365142
BINARYNINJACOREAPI void BNSetDisassemblyAddressBaseOffset(BNDisassemblySettings* settings, uint64_t addressBaseOffset);
5143+
BINARYNINJACOREAPI BNDisassemblyCallParameterHints BNGetDisassemblyCallParameterHints(BNDisassemblySettings* settings);
5144+
BINARYNINJACOREAPI void BNSetDisassemblyCallParameterHints(BNDisassemblySettings* settings, BNDisassemblyCallParameterHints hints);
51375145

51385146
// Flow graphs
51395147
BINARYNINJACOREAPI BNFlowGraph* BNCreateFlowGraph(void);

python/binaryview.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8780,7 +8780,6 @@ def find_all_text(
87808780
settings.set_option(DisassemblyOption.ShowAddress, False)
87818781
settings.set_option(DisassemblyOption.ShowOpcode, False)
87828782
settings.set_option(DisassemblyOption.ShowVariableTypesWhenAssigned, True)
8783-
settings.set_option(DisassemblyOption.ShowCallParameterNames, True)
87848783
settings.set_option(DisassemblyOption.WaitForIL, True)
87858784
if not isinstance(settings, _function.DisassemblySettings):
87868785
raise TypeError("settings parameter is not DisassemblySettings type")
@@ -8870,7 +8869,6 @@ def find_all_constant(
88708869
settings.set_option(DisassemblyOption.ShowAddress, False)
88718870
settings.set_option(DisassemblyOption.ShowOpcode, False)
88728871
settings.set_option(DisassemblyOption.ShowVariableTypesWhenAssigned, True)
8873-
settings.set_option(DisassemblyOption.ShowCallParameterNames, True)
88748872
settings.set_option(DisassemblyOption.WaitForIL, True)
88758873
if not isinstance(settings, _function.DisassemblySettings):
88768874
raise TypeError("settings parameter is not DisassemblySettings type")

ui/disassemblyview.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ class BINARYNINJAUIAPI DisassemblyView : public FlowGraphWidget
7777
void setOption(BNDisassemblyOption option, bool state = true);
7878
void toggleOption(BNDisassemblyOption option);
7979
void setAddressMode(std::optional<BNDisassemblyAddressMode> mode, std::optional<bool> hex, std::optional<bool> withName);
80+
void setCallParamHints(BNDisassemblyCallParameterHints hints);
8081
void setDisplayedFileName();
8182
void setAddressBaseOffset(bool toHere);
8283

@@ -134,6 +135,7 @@ class BINARYNINJAUIAPI DisassemblyView : public FlowGraphWidget
134135
BNFunctionGraphType m_ilViewType;
135136
std::set<BNDisassemblyOption> m_options;
136137
BNDisassemblyAddressMode m_addressMode;
138+
BNDisassemblyCallParameterHints m_callParamHints;
137139
DisassemblyContainer* m_container;
138140
SettingsRef m_settings;
139141

ui/linearview.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -481,6 +481,7 @@ private Q_SLOTS:
481481

482482
void toggleOption(BNDisassemblyOption option);
483483
void setAddressMode(std::optional<BNDisassemblyAddressMode> mode, std::optional<bool> hex, std::optional<bool> withName);
484+
void setCallParamHints(BNDisassemblyCallParameterHints hints);
484485
void setDisplayedFileName();
485486
void setAddressBaseOffset(bool toHere);
486487

0 commit comments

Comments
 (0)