diff options
| -rw-r--r-- | binaryninjaapi.h | 20 | ||||
| -rw-r--r-- | binaryninjacore.h | 3 | ||||
| -rw-r--r-- | python/startup.py | 1 | ||||
| -rw-r--r-- | settings.cpp (renamed from setting.cpp) | 95 |
4 files changed, 16 insertions, 103 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index 10f021b4..426095b0 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -2866,7 +2866,6 @@ namespace BinaryNinja class Setting { public: - static bool ProcessMainSettingsFile(); static bool GetBool(const std::string& settingGroup, const std::string& name, bool defaultValue); static uint64_t GetInteger(const std::string& settingGroup, const std::string& name, uint64_t defaultValue=0); static std::string GetString(const std::string& settingGroup, const std::string& name, const std::string& defaultValue=""); @@ -2883,25 +2882,6 @@ namespace BinaryNinja static bool IsDouble(const std::string& settingGroup, const std::string& name); }; - class CoreSetting - { - public: - static bool GetBool(const std::string& name, bool defaultValue); - static uint64_t GetInteger(const std::string& name, uint64_t defaultValue=0); - static std::string GetString(const std::string& name, const std::string& defaultValue=""); - static std::vector<uint64_t> GetIntegerList(const std::string& name, const std::vector<uint64_t>& defaultValue={}); - static std::vector<std::string> GetStringList(const std::string& name, const std::vector<std::string>& defaultValue={}); - static double GetDouble(const std::string& name, double defaultValue=0.0); - - static bool IsPresent(const std::string& name); - static bool IsBool(const std::string& name); - static bool IsInteger(const std::string& name); - static bool IsString(const std::string& name); - static bool IsIntegerList(const std::string& name); - static bool IsStringList(const std::string& name); - static bool IsDouble(const std::string& name); - }; - typedef BNMetadataType MetadataType; class Metadata: public CoreRefCountObject<BNMetadata, BNNewMetadataReference, BNFreeMetadata> diff --git a/binaryninjacore.h b/binaryninjacore.h index 58b0198a..25aa150d 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -1493,6 +1493,7 @@ extern "C" BINARYNINJACOREAPI char* BNAllocString(const char* contents); BINARYNINJACOREAPI void BNFreeString(char* str); + BINARYNINJACOREAPI char** BNAllocStringList(const char** contents, size_t size); BINARYNINJACOREAPI void BNFreeStringList(char** strs, size_t count); BINARYNINJACOREAPI void BNShutdown(void); @@ -2883,7 +2884,6 @@ extern "C" BINARYNINJACOREAPI bool BNIsPathRegularFile(const char* path); // Settings APIs - BINARYNINJACOREAPI bool BNProcessMainSettingsFile(); BINARYNINJACOREAPI bool BNSettingGetBool(const char* settingGroup, const char* name, bool defaultValue); BINARYNINJACOREAPI uint64_t BNSettingGetInteger(const char* settingGroup, const char* name, uint64_t defaultValue); BINARYNINJACOREAPI char* BNSettingGetString(const char* settingGroup, const char* name, const char* defaultValue); @@ -2893,7 +2893,6 @@ extern "C" BINARYNINJACOREAPI const char** BNSettingGetStringList(const char* settingGroup, const char* name, const char** defaultValue, size_t* inoutSize); BINARYNINJACOREAPI double BNSettingGetDouble(const char* settingGroup, const char* name, double defaultValue); - BINARYNINJACOREAPI void BNFreeSettingStringList(char** stringList, size_t size); BINARYNINJACOREAPI void BNFreeSettingIntegerList(uint64_t* integerList); //Check the type of a core setting BINARYNINJACOREAPI bool BNSettingIsBool(const char* name, const char* settingGroup); diff --git a/python/startup.py b/python/startup.py index d37b2f9b..0abc47cb 100644 --- a/python/startup.py +++ b/python/startup.py @@ -28,7 +28,6 @@ def _init_plugins(): global _plugin_init if not _plugin_init: _plugin_init = True - core.BNProcessMainSettingsFile() core.BNInitCorePlugins() core.BNInitUserPlugins() core.BNInitRepoPlugins() diff --git a/setting.cpp b/settings.cpp index b1efdbae..97c2a232 100644 --- a/setting.cpp +++ b/settings.cpp @@ -4,11 +4,6 @@ using namespace BinaryNinja; using namespace std; -bool Setting::ProcessMainSettingsFile() -{ - return BNProcessMainSettingsFile(); -} - bool Setting::GetBool(const std::string& pluginName, const std::string& name, bool defaultValue) { return BNSettingGetBool(pluginName.c_str(), name.c_str(), defaultValue); @@ -29,37 +24,40 @@ double Setting::GetDouble(const std::string& pluginName, const std::string& name return BNSettingGetDouble(pluginName.c_str(), name.c_str(), defaultValue); } -std::vector<uint64_t> Setting::GetIntegerList(const std::string& pluginName, const std::string& name, const std::vector<uint64_t>& defaultValue) +std::vector<uint64_t> Setting::GetIntegerList(const std::string& pluginName, + const std::string& name, + const std::vector<uint64_t>& defaultValue) { uint64_t* buffer = new uint64_t[defaultValue.size()]; memcpy(&buffer[0], &defaultValue[0], sizeof(uint64_t) * defaultValue.size()); size_t size = defaultValue.size(); uint64_t* outBuffer = BNSettingGetIntegerList(pluginName.c_str(), name.c_str(), buffer, &size); - if (buffer == outBuffer) - return defaultValue; - - vector<uint64_t> out(buffer, buffer + size); delete[] buffer; + + vector<uint64_t> out(outBuffer, outBuffer + size); + BNFreeSettingIntegerList(buffer); return out; } -std::vector<std::string> Setting::GetStringList(const std::string& pluginName, const std::string& name, const std::vector<std::string>& defaultValue) +std::vector<std::string> Setting::GetStringList(const std::string& pluginName, + const std::string& name, + const std::vector<std::string>& defaultValue) { char** buffer = new char*[defaultValue.size()]; for (size_t i = 0; i < defaultValue.size(); i++) buffer[i] = BNAllocString(defaultValue[i].c_str()); size_t size = defaultValue.size(); - const char** outBuffer = BNSettingGetStringList(pluginName.c_str(), name.c_str(), (const char**)buffer, &size); - if (buffer == outBuffer) - return defaultValue; + char** outBuffer = (char**)BNSettingGetStringList(pluginName.c_str(), name.c_str(), (const char**)buffer, &size); - vector<string> out; + vector<string> result; for (size_t i = 0; i < size; i++) - out.push_back(string(outBuffer[i])); + result.push_back(string(outBuffer[i])); + for (size_t i = 0; i < defaultValue.size(); i++) BNFreeString(buffer[i]); delete[] buffer; - return out; + BNFreeStringList(outBuffer, size); + return result; } @@ -97,66 +95,3 @@ bool Setting::IsDouble(const std::string& pluginName, const std::string& name) { return BNSettingIsDouble(pluginName.c_str(), name.c_str()); } - - - -bool CoreSetting::GetBool(const std::string& name, bool defaultValue) -{ - return BNSettingGetBool("core", name.c_str(), defaultValue); -} -uint64_t CoreSetting::GetInteger(const std::string& name, uint64_t defaultValue) -{ - return BNSettingGetInteger("core", name.c_str(), defaultValue); -} -std::string CoreSetting::GetString(const std::string& name, const std::string& defaultValue) -{ - return Setting::GetString("core", name.c_str(), defaultValue); -} -double CoreSetting::GetDouble(const std::string& name, double defaultValue) -{ - return BNSettingGetDouble("core", name.c_str(), defaultValue); -} -std::vector<uint64_t> CoreSetting::GetIntegerList(const std::string& name, const std::vector<uint64_t>& defaultValue) -{ - return Setting::GetIntegerList("core", name.c_str(), defaultValue); -} -std::vector<std::string> CoreSetting::GetStringList(const std::string& name, const std::vector<std::string>& defaultValue) -{ - return Setting::GetStringList("core", name.c_str(), defaultValue); -} - -bool CoreSetting::IsPresent(const std::string& name) -{ - return BNSettingIsPresent("core", name.c_str()); -} - -bool CoreSetting::IsBool(const std::string& name) -{ - return BNSettingIsBool("core", name.c_str()); -} - -bool CoreSetting::IsInteger(const std::string& name) -{ - return BNSettingIsInteger("core", name.c_str()); -} - -bool CoreSetting::IsString(const std::string& name) -{ - return BNSettingIsString("core", name.c_str()); -} - -bool CoreSetting::IsIntegerList(const std::string& name) -{ - return BNSettingIsIntegerList("core", name.c_str()); -} - -bool CoreSetting::IsStringList(const std::string& name) -{ - return BNSettingIsStringList("core", name.c_str()); -} - -bool CoreSetting::IsDouble(const std::string& name) -{ - return BNSettingIsDouble("core", name.c_str()); -} - |
