/** * @brief Free a string property if it is allocated into ui_dynStringPool * @param[in,out] pointer The pointer to the data that should be freed * @sa ui_dynStringPool */ void UI_FreeStringProperty (void* pointer) { /* skip const string */ if ((uintptr_t)ui_global.adata <= (uintptr_t)pointer && (uintptr_t)pointer < (uintptr_t)ui_global.adata + (uintptr_t)ui_global.adataize) return; /* skip pointer out of ui_dynStringPool */ if (!_Mem_AllocatedInPool(ui_dynStringPool, pointer)) return; Mem_Free(pointer); }
/** * @brief Reset a shared data. Type became NONE and value became NULL */ void UI_ResetData (int dataId) { assert(dataId < UI_MAX_DATAID); assert(dataId >= 0); switch (ui_global.sharedData[dataId].type) { case UI_SHARED_LINKEDLISTTEXT: LIST_Delete(&ui_global.sharedData[dataId].data.linkedListText); break; case UI_SHARED_OPTION: if (_Mem_AllocatedInPool(com_genericPool, ui_global.sharedData[dataId].data.option)) { UI_DeleteOption(ui_global.sharedData[dataId].data.option); } break; default: break; } ui_global.sharedData[dataId].type = UI_SHARED_NONE; ui_global.sharedData[dataId].data.text = NULL; ui_global.sharedData[dataId].versionId++; }