30#define DISABLE_DEBUGLOG
33#include <gwenhywfar/misc.h>
34#include <gwenhywfar/debug.h>
35#include <gwenhywfar/gwenhywfarapi.h>
56 d->typeName=strdup(t);
60 d->freeDataFn=freeDataFn;
63 "Created inheritance for type \"%s\" (%08x)", t,
id);
73 d->freeDataFn(d->baseData, d->data);
86 "Freeing data for type \"%s\"",
89 d->freeDataFn(d->baseData, d->data);
133 return d->freeDataFn;
147 for (i=0; i<j; i++) {
152 c=((result>>24)&0xff);
154 result^=(
unsigned char)(typeName[i]);
158 "Id for type \"%s\" is \"%08x\"",
174 "Searching for inheritance id \"%08x\"",
id);
178 "Checking type \"%s\" (%08x) against %08x",
179 ih->typeName, ih->id,
id);
186 "Type \"%08x\" not derived from this base type",
id);
205 ih->typeName, ih->id,
id);
212 "Type \"%08x\" not derived from this base type",
id);
#define DBG_VERBOUS(dbg_logger, format,...)
#define DBG_WARN(dbg_logger, format,...)
const char * GWEN_InheritData_GetTypeName(const GWEN_INHERITDATA *d)
GWEN_INHERIT_FREEDATAFN GWEN_InheritData_GetFreeDataFn(const GWEN_INHERITDATA *d)
GWEN_INHERITDATA * GWEN_InheritData_new(const char *t, uint32_t id, void *data, void *baseData, GWEN_INHERIT_FREEDATAFN freeDataFn)
void * GWEN_InheritData_GetData(const GWEN_INHERITDATA *d)
void GWEN_InheritData_freeData(GWEN_INHERITDATA *d)
GWEN_INHERITDATA * GWEN_Inherit_FindEntry(GWEN_INHERITDATA_LIST *l, uint32_t id, int wantCreate)
uint32_t GWEN_InheritData_GetId(const GWEN_INHERITDATA *d)
void GWEN_InheritData_clear(GWEN_INHERITDATA *d)
void GWEN_InheritData_free(GWEN_INHERITDATA *d)
uint32_t GWEN_Inherit_MakeId(const char *typeName)
void * GWEN_Inherit_FindData(GWEN_INHERITDATA_LIST *l, uint32_t id, int wantCreate)
struct GWEN_INHERITDATA GWEN_INHERITDATA
void GWENHYWFAR_CB(* GWEN_INHERIT_FREEDATAFN)(void *baseData, void *data)
#define GWEN_LIST_FINI(t, element)
#define GWEN_LIST_FUNCTIONS(t, pr)
#define GWEN_LIST_INIT(t, element)
GWEN_INHERITDATA * GWEN_InheritData_List_Next(const GWEN_INHERITDATA *element)
GWEN_INHERITDATA * GWEN_InheritData_List_First(const GWEN_INHERITDATA_LIST *l)
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)