summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binaryninjaapi.h20
-rw-r--r--binaryninjacore.h3
-rw-r--r--python/startup.py1
-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());
-}
-