struct CBDataIndex {
MemAllocator *pool;
- FREE *free_func;
}
*cbdata_index = NULL;
}
#endif
-
- FREE *free_func = cbdata_index[type].free_func;
-
-#if HASHED_CBDATA
- void *p = hash.key;
-#else
- void *p = &data;
-#endif
-
- if (free_func)
- free_func(p);
}
static void
-cbdataInternalInitType(cbdata_type type, const char *name, int size, FREE * free_func)
+cbdataInternalInitType(cbdata_type type, const char *name, int size)
{
char *label;
assert (type == cbdata_types + 1);
cbdata_index[type].pool = memPoolCreate(label, size);
- cbdata_index[type].free_func = free_func;
-
#if HASHED_CBDATA
if (!cbdata_htable)
cbdata_htable = hash_create(cbdata_cmp, 1 << 12, cbdata_hash);
}
cbdata_type
-cbdataInternalAddType(cbdata_type type, const char *name, int size, FREE * free_func)
+cbdataInternalAddType(cbdata_type type, const char *name, int size)
{
if (type)
return type;
type = (cbdata_type)(cbdata_types + 1);
- cbdataInternalInitType(type, name, size, free_func);
+ cbdataInternalInitType(type, name, size);
return type;
}
*
* \note For internal CBDATA use only.
*/
-cbdata_type cbdataInternalAddType(cbdata_type type, const char *label, int size, FREE * free_func);
+cbdata_type cbdataInternalAddType(cbdata_type type, const char *label, int size);
/**
* This needs to be defined FIRST in the class definition.
public: \
void *operator new(size_t size) { \
assert(size == sizeof(type)); \
- if (!CBDATA_##type) CBDATA_##type = cbdataInternalAddType(CBDATA_##type, #type, sizeof(type), NULL); \
+ if (!CBDATA_##type) CBDATA_##type = cbdataInternalAddType(CBDATA_##type, #type, sizeof(type)); \
return (type *)cbdataInternalAlloc(CBDATA_##type,__FILE__,__LINE__); \
} \
void operator delete (void *address) { \
#endif
int cbdataReferenceValid(const void *p) STUB_RETVAL(0)
-cbdata_type cbdataInternalAddType(cbdata_type type, const char *label, int size, FREE * free_func) STUB_RETVAL(CBDATA_UNKNOWN)
+cbdata_type cbdataInternalAddType(cbdata_type, const char *, int) STUB_RETVAL(CBDATA_UNKNOWN)