diff --git a/include/wups/config_imports.h b/include/wups/config_imports.h index c7db809..6214070 100644 --- a/include/wups/config_imports.h +++ b/include/wups/config_imports.h @@ -5,6 +5,8 @@ extern "C" int32_t WUPSConfigItem_Create(WUPSConfigItemHandle *out, const char *configID, const char *displayName, WUPSConfigCallbacks_t callbacks, void *context); +extern "C" int32_t WUPSConfigItem_Destroy(WUPSConfigItemHandle handle); + extern "C" int32_t WUPSConfig_Destroy(WUPSConfigHandle handle); extern "C" int32_t WUPSConfigItem_SetDisplayName(WUPSConfigItemHandle handle, const char *displayName); diff --git a/libraries/libwups/WUPSConfigItemBoolean.cpp b/libraries/libwups/WUPSConfigItemBoolean.cpp index e863bc2..262e3ad 100644 --- a/libraries/libwups/WUPSConfigItemBoolean.cpp +++ b/libraries/libwups/WUPSConfigItemBoolean.cpp @@ -90,6 +90,7 @@ WUPSConfigItemBoolean_AddToCategoryEx(WUPSConfigCategoryHandle cat, const char * } if (WUPSConfigCategory_AddItem(cat, item->handle) < 0) { + WUPSConfigItem_Destroy(item->handle); return false; } return true; diff --git a/libraries/libwups/WUPSConfigItemIntegerRange.cpp b/libraries/libwups/WUPSConfigItemIntegerRange.cpp index 2e017f1..1f79b48 100644 --- a/libraries/libwups/WUPSConfigItemIntegerRange.cpp +++ b/libraries/libwups/WUPSConfigItemIntegerRange.cpp @@ -98,6 +98,7 @@ extern "C" bool WUPSConfigItemIntegerRange_AddToCategory(WUPSConfigCategoryHandl }; if (WUPSConfigCategory_AddItem(cat, item->handle) < 0) { + WUPSConfigItem_Destroy(item->handle); return false; } return true; diff --git a/libraries/libwups/WUPSConfigItemMultipleValues.cpp b/libraries/libwups/WUPSConfigItemMultipleValues.cpp index f2f4418..6cb1753 100644 --- a/libraries/libwups/WUPSConfigItemMultipleValues.cpp +++ b/libraries/libwups/WUPSConfigItemMultipleValues.cpp @@ -127,6 +127,7 @@ WUPSConfigItemMultipleValues_AddToCategory(WUPSConfigCategoryHandle cat, const c } if (WUPSConfigCategory_AddItem(cat, item->handle) < 0) { + WUPSConfigItem_Destroy(item->handle); return false; } return true; diff --git a/libraries/libwups/config.def b/libraries/libwups/config.def index 797f37c..eb31b2d 100644 --- a/libraries/libwups/config.def +++ b/libraries/libwups/config.def @@ -2,6 +2,7 @@ :TEXT WUPSConfigItem_Create +WUPSConfigItem_Destroy WUPSConfigItem_SetDisplayName WUPSConfigItem_GetDisplayName WUPSConfigItem_SetConfigID