Skip to content

Commit e78cae7

Browse files
committed
Revert "Add line formatter API and a generic line formatter plugin"
This reverts commit 1699c71.
1 parent cbd4d7f commit e78cae7

18 files changed

+50
-1758
lines changed

basicblock.cpp

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -36,24 +36,6 @@ DisassemblySettings::DisassemblySettings(BNDisassemblySettings* settings)
3636
}
3737

3838

39-
Ref<DisassemblySettings> DisassemblySettings::GetDefaultSettings()
40-
{
41-
return new DisassemblySettings(BNDefaultDisassemblySettings());
42-
}
43-
44-
45-
Ref<DisassemblySettings> DisassemblySettings::GetDefaultGraphSettings()
46-
{
47-
return new DisassemblySettings(BNDefaultGraphDisassemblySettings());
48-
}
49-
50-
51-
Ref<DisassemblySettings> DisassemblySettings::GetDefaultLinearSettings()
52-
{
53-
return new DisassemblySettings(BNDefaultLinearDisassemblySettings());
54-
}
55-
56-
5739
DisassemblySettings* DisassemblySettings::Duplicate()
5840
{
5941
return new DisassemblySettings(BNDuplicateDisassemblySettings(m_object));

binaryninjaapi.h

Lines changed: 1 addition & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -10171,10 +10171,6 @@ namespace BinaryNinja {
1017110171
DisassemblySettings(BNDisassemblySettings* settings);
1017210172
DisassemblySettings* Duplicate();
1017310173

10174-
static Ref<DisassemblySettings> GetDefaultSettings();
10175-
static Ref<DisassemblySettings> GetDefaultGraphSettings();
10176-
static Ref<DisassemblySettings> GetDefaultLinearSettings();
10177-
1017810174
bool IsOptionSet(BNDisassemblyOption option) const;
1017910175
void SetOption(BNDisassemblyOption option, bool state = true);
1018010176

@@ -13698,82 +13694,6 @@ namespace BinaryNinja {
1369813694
std::set<SSAVariable> GetSSAVariables();
1369913695
};
1370013696

13701-
struct LineFormatterSettings
13702-
{
13703-
Ref<HighLevelILFunction> highLevelIL;
13704-
size_t desiredLineLength;
13705-
size_t minimumContentLength;
13706-
size_t tabWidth;
13707-
std::string languageName;
13708-
std::string commentStartString;
13709-
std::string commentEndString;
13710-
std::string annotationStartString;
13711-
std::string annotationEndString;
13712-
13713-
/*! Gets the default line formatter settings for High Level IL code.
13714-
13715-
\param settings The settings for reformatting.
13716-
\param func High Level IL function to be reformatted.
13717-
\return Settings for reformatting.
13718-
*/
13719-
static LineFormatterSettings GetDefault(DisassemblySettings* settings, HighLevelILFunction* func);
13720-
13721-
/*! Gets the default line formatter settings for a language representation function.
13722-
13723-
\param settings The settings for reformatting.
13724-
\param func Language representation function to be reformatted.
13725-
\return Settings for reformatting.
13726-
*/
13727-
static LineFormatterSettings GetLanguageRepresentationSettings(
13728-
DisassemblySettings* settings, LanguageRepresentationFunction* func);
13729-
13730-
static LineFormatterSettings FromAPIObject(const BNLineFormatterSettings* settings);
13731-
BNLineFormatterSettings ToAPIObject() const;
13732-
};
13733-
13734-
class LineFormatter : public StaticCoreRefCountObject<BNLineFormatter>
13735-
{
13736-
std::string m_nameForRegister;
13737-
13738-
static BNDisassemblyTextLine* FormatLinesCallback(void* ctxt, BNDisassemblyTextLine* inLines, size_t inCount,
13739-
const BNLineFormatterSettings* settings, size_t* outCount);
13740-
static void FreeLinesCallback(void* ctxt, BNDisassemblyTextLine* lines, size_t count);
13741-
13742-
public:
13743-
LineFormatter(const std::string& name);
13744-
LineFormatter(BNLineFormatter* formatter);
13745-
13746-
/*! Registers the line formatter.
13747-
13748-
\param formatter The line formatter to register.
13749-
*/
13750-
static void Register(LineFormatter* formatter);
13751-
13752-
static std::vector<Ref<LineFormatter>> GetList();
13753-
static Ref<LineFormatter> GetByName(const std::string& name);
13754-
static Ref<LineFormatter> GetDefault();
13755-
13756-
/*! Reformats the given list of lines. Returns a new list of lines containing the reformatted code.
13757-
13758-
\param lines The lines to reformat.
13759-
\param settings The settings for reformatting.
13760-
\return A new list of reformatted lines.
13761-
*/
13762-
virtual std::vector<DisassemblyTextLine> FormatLines(
13763-
const std::vector<DisassemblyTextLine>& lines, const LineFormatterSettings& settings) = 0;
13764-
};
13765-
13766-
class CoreLineFormatter : public LineFormatter
13767-
{
13768-
public:
13769-
CoreLineFormatter(BNLineFormatter* formatter);
13770-
13771-
std::vector<DisassemblyTextLine> FormatLines(
13772-
const std::vector<DisassemblyTextLine>& lines, const LineFormatterSettings& settings) override;
13773-
};
13774-
13775-
class LanguageRepresentationFunctionType;
13776-
1377713697
/*! LanguageRepresentationFunction represents a single function in a registered high level language.
1377813698

1377913699
\ingroup highlevelil
@@ -13783,8 +13703,7 @@ namespace BinaryNinja {
1378313703
BNFreeLanguageRepresentationFunction>
1378413704
{
1378513705
public:
13786-
LanguageRepresentationFunction(LanguageRepresentationFunctionType* type, Architecture* arch, Function* func,
13787-
HighLevelILFunction* highLevelIL);
13706+
LanguageRepresentationFunction(Architecture* arch, Function* func, HighLevelILFunction* highLevelIL);
1378813707
LanguageRepresentationFunction(BNLanguageRepresentationFunction* func);
1378913708

1379013709
/*! Gets the lines of tokens for a given High Level IL instruction.
@@ -13823,7 +13742,6 @@ namespace BinaryNinja {
1382313742
*/
1382413743
BNHighlightColor GetHighlight(BasicBlock* block);
1382513744

13826-
Ref<LanguageRepresentationFunctionType> GetLanguage() const;
1382713745
Ref<Architecture> GetArchitecture() const;
1382813746
Ref<Function> GetFunction() const;
1382913747
Ref<HighLevelILFunction> GetHighLevelILFunction() const;
@@ -13972,13 +13890,6 @@ namespace BinaryNinja {
1397213890
*/
1397313891
virtual Ref<TypeParser> GetTypeParser() { return nullptr; }
1397413892

13975-
/*! Returns the line formatter for formatting code in this language. If NULL is returned, the default
13976-
formatter will be used.
13977-
13978-
\return The optional formatter for formatting code in this language.
13979-
*/
13980-
virtual Ref<LineFormatter> GetLineFormatter() { return nullptr; }
13981-
1398213893
/*! Returns a list of lines representing a function prototype in this language. If no lines are returned, the
1398313894
default C-style prototype will be used.
1398413895

@@ -14005,7 +13916,6 @@ namespace BinaryNinja {
1400513916
static bool IsValidCallback(void* ctxt, BNBinaryView* view);
1400613917
static BNTypePrinter* GetTypePrinterCallback(void* ctxt);
1400713918
static BNTypeParser* GetTypeParserCallback(void* ctxt);
14008-
static BNLineFormatter* GetLineFormatterCallback(void* ctxt);
1400913919
static BNDisassemblyTextLine* GetFunctionTypeTokensCallback(
1401013920
void* ctxt, BNFunction* func, BNDisassemblySettings* settings, size_t* count);
1401113921
static void FreeLinesCallback(void* ctxt, BNDisassemblyTextLine* lines, size_t count);
@@ -14020,7 +13930,6 @@ namespace BinaryNinja {
1402013930
bool IsValid(BinaryView* view) override;
1402113931
Ref<TypePrinter> GetTypePrinter() override;
1402213932
Ref<TypeParser> GetTypeParser() override;
14023-
Ref<LineFormatter> GetLineFormatter() override;
1402413933
std::vector<DisassemblyTextLine> GetFunctionTypeTokens(
1402513934
Function* func, DisassemblySettings* settings = nullptr) override;
1402613935
};

binaryninjacore.h

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -37,14 +37,14 @@
3737
// Current ABI version for linking to the core. This is incremented any time
3838
// there are changes to the API that affect linking, including new functions,
3939
// new types, or modifications to existing functions or types.
40-
#define BN_CURRENT_CORE_ABI_VERSION 89
40+
#define BN_CURRENT_CORE_ABI_VERSION 88
4141

4242
// Minimum ABI version that is supported for loading of plugins. Plugins that
4343
// are linked to an ABI version less than this will not be able to load and
4444
// will require rebuilding. The minimum version is increased when there are
4545
// incompatible changes that break binary compatibility, such as changes to
4646
// existing types or functions.
47-
#define BN_MINIMUM_CORE_ABI_VERSION 89
47+
#define BN_MINIMUM_CORE_ABI_VERSION 86
4848

4949
#ifdef __GNUC__
5050
#ifdef BINARYNINJACORE_LIBRARY
@@ -302,7 +302,6 @@ extern "C"
302302
typedef struct BNDemangler BNDemangler;
303303
typedef struct BNFirmwareNinja BNFirmwareNinja;
304304
typedef struct BNFirmwareNinjaReferenceNode BNFirmwareNinjaReferenceNode;
305-
typedef struct BNLineFormatter BNLineFormatter;
306305

307306
//! Console log levels
308307
typedef enum BNLogLevel
@@ -728,7 +727,6 @@ extern "C"
728727
HighLevelILLinearDisassembly = 65,
729728
WaitForIL = 66,
730729
IndentHLILBody = 67,
731-
DisableLineFormatting = 68,
732730

733731
// Debugging options
734732
ShowFlagUsage = 128,
@@ -3441,7 +3439,6 @@ extern "C"
34413439
bool (*isValid)(void* ctxt, BNBinaryView* view);
34423440
BNTypePrinter* (*getTypePrinter)(void* ctxt);
34433441
BNTypeParser* (*getTypeParser)(void* ctxt);
3444-
BNLineFormatter* (*getLineFormatter)(void* ctxt);
34453442
BNDisassemblyTextLine* (*getFunctionTypeTokens)(
34463443
void* ctxt, BNFunction* func, BNDisassemblySettings* settings, size_t* count);
34473444
void (*freeLines)(void* ctxt, BNDisassemblyTextLine* lines, size_t count);
@@ -3541,28 +3538,6 @@ extern "C"
35413538
size_t unique;
35423539
} BNFirmwareNinjaDeviceAccesses;
35433540

3544-
typedef struct BNLineFormatterSettings
3545-
{
3546-
BNHighLevelILFunction* highLevelIL;
3547-
size_t desiredLineLength;
3548-
size_t minimumContentLength;
3549-
size_t tabWidth;
3550-
char* languageName;
3551-
char* commentStartString;
3552-
char* commentEndString;
3553-
char* annotationStartString;
3554-
char* annotationEndString;
3555-
} BNLineFormatterSettings;
3556-
3557-
typedef struct BNCustomLineFormatter
3558-
{
3559-
void* context;
3560-
BNDisassemblyTextLine* (*formatLines)(void* ctxt, BNDisassemblyTextLine* inLines, size_t inCount,
3561-
const BNLineFormatterSettings* settings, size_t* outCount);
3562-
void (*freeLines)(void* ctxt, BNDisassemblyTextLine* lines, size_t count);
3563-
} BNCustomLineFormatter;
3564-
3565-
35663541
BINARYNINJACOREAPI char* BNAllocString(const char* contents);
35673542
BINARYNINJACOREAPI char* BNAllocStringWithLength(const char* contents, size_t len);
35683543
BINARYNINJACOREAPI void BNFreeString(char* str);
@@ -5478,9 +5453,6 @@ extern "C"
54785453

54795454
// Disassembly settings
54805455
BINARYNINJACOREAPI BNDisassemblySettings* BNCreateDisassemblySettings(void);
5481-
BINARYNINJACOREAPI BNDisassemblySettings* BNDefaultDisassemblySettings(void);
5482-
BINARYNINJACOREAPI BNDisassemblySettings* BNDefaultGraphDisassemblySettings(void);
5483-
BINARYNINJACOREAPI BNDisassemblySettings* BNDefaultLinearDisassemblySettings(void);
54845456
BINARYNINJACOREAPI BNDisassemblySettings* BNNewDisassemblySettingsReference(BNDisassemblySettings* settings);
54855457
BINARYNINJACOREAPI BNDisassemblySettings* BNDuplicateDisassemblySettings(BNDisassemblySettings* settings);
54865458
BINARYNINJACOREAPI void BNFreeDisassemblySettings(BNDisassemblySettings* settings);
@@ -6171,19 +6143,15 @@ extern "C"
61716143
BNLanguageRepresentationFunctionType* type, BNBinaryView* view);
61726144
BINARYNINJACOREAPI BNTypePrinter* BNGetLanguageRepresentationFunctionTypePrinter(BNLanguageRepresentationFunctionType* type);
61736145
BINARYNINJACOREAPI BNTypeParser* BNGetLanguageRepresentationFunctionTypeParser(BNLanguageRepresentationFunctionType* type);
6174-
BINARYNINJACOREAPI BNLineFormatter* BNGetLanguageRepresentationFunctionTypeLineFormatter(
6175-
BNLanguageRepresentationFunctionType* type);
61766146
BINARYNINJACOREAPI BNDisassemblyTextLine* BNGetLanguageRepresentationFunctionTypeFunctionTypeTokens(
61776147
BNLanguageRepresentationFunctionType* type, BNFunction* func, BNDisassemblySettings* settings, size_t* count);
61786148

61796149
BINARYNINJACOREAPI BNLanguageRepresentationFunction* BNCreateCustomLanguageRepresentationFunction(
6180-
BNLanguageRepresentationFunctionType* type, BNArchitecture* arch, BNFunction* func,
6181-
BNHighLevelILFunction* highLevelIL, BNCustomLanguageRepresentationFunction* callbacks);
6150+
BNArchitecture* arch, BNFunction* func, BNHighLevelILFunction* highLevelIL,
6151+
BNCustomLanguageRepresentationFunction* callbacks);
61826152
BINARYNINJACOREAPI BNLanguageRepresentationFunction* BNNewLanguageRepresentationFunctionReference(
61836153
BNLanguageRepresentationFunction* func);
61846154
BINARYNINJACOREAPI void BNFreeLanguageRepresentationFunction(BNLanguageRepresentationFunction* func);
6185-
BINARYNINJACOREAPI BNLanguageRepresentationFunctionType* BNGetLanguageRepresentationType(
6186-
BNLanguageRepresentationFunction* func);
61876155
BINARYNINJACOREAPI BNArchitecture* BNGetLanguageRepresentationArchitecture(BNLanguageRepresentationFunction* func);
61886156
BINARYNINJACOREAPI BNFunction* BNGetLanguageRepresentationOwnerFunction(BNLanguageRepresentationFunction* func);
61896157
BINARYNINJACOREAPI BNHighLevelILFunction* BNGetLanguageRepresentationILFunction(BNLanguageRepresentationFunction* func);
@@ -8088,25 +8056,6 @@ extern "C"
80888056
BINARYNINJACOREAPI void BNFreeFirmwareNinjaReferenceNode(BNFirmwareNinjaReferenceNode* node);
80898057
BINARYNINJACOREAPI BNFirmwareNinjaReferenceNode* BNNewFirmwareNinjaReferenceNodeReference(BNFirmwareNinjaReferenceNode* node);
80908058
BINARYNINJACOREAPI void BNFreeFirmwareNinjaReferenceNodes(BNFirmwareNinjaReferenceNode** nodes, size_t count);
8091-
8092-
// Line formatters
8093-
BINARYNINJACOREAPI BNLineFormatter* BNRegisterLineFormatter(const char* name, BNCustomLineFormatter* callbacks);
8094-
BINARYNINJACOREAPI BNLineFormatter** BNGetLineFormatterList(size_t* count);
8095-
BINARYNINJACOREAPI void BNFreeLineFormatterList(BNLineFormatter** formatters);
8096-
BINARYNINJACOREAPI BNLineFormatter* BNGetLineFormatterByName(const char* name);
8097-
BINARYNINJACOREAPI BNLineFormatter* BNGetDefaultLineFormatter();
8098-
8099-
BINARYNINJACOREAPI char* BNGetLineFormatterName(BNLineFormatter* formatter);
8100-
8101-
BINARYNINJACOREAPI BNDisassemblyTextLine* BNFormatLines(BNLineFormatter* formatter, BNDisassemblyTextLine* inLines,
8102-
size_t inCount, const BNLineFormatterSettings* settings, size_t* outCount);
8103-
8104-
BINARYNINJACOREAPI BNLineFormatterSettings* BNGetDefaultLineFormatterSettings(
8105-
BNDisassemblySettings* settings, BNHighLevelILFunction* func);
8106-
BINARYNINJACOREAPI BNLineFormatterSettings* BNGetLanguageRepresentationLineFormatterSettings(
8107-
BNDisassemblySettings* settings, BNLanguageRepresentationFunction* func);
8108-
BINARYNINJACOREAPI void BNFreeLineFormatterSettings(BNLineFormatterSettings* settings);
8109-
81108059
#ifdef __cplusplus
81118060
}
81128061
#endif

formatter/generic/CMakeLists.txt

Lines changed: 0 additions & 45 deletions
This file was deleted.

0 commit comments

Comments
 (0)