示例#1
0
/**
 * @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);
}
示例#2
0
/**
 * @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++;
}