672bcfa4886acb35b9ae55d7c6b2e2ca9b6a681b tdreszer Fri Mar 25 15:22:38 2011 -0700 Needed to expose mdbVarsFree() diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c index e8fbb2a..2f997a6 100644 --- src/hg/lib/mdb.c +++ src/hg/lib/mdb.c @@ -224,46 +224,30 @@ fputc('}',f); } /* -------------------------------- End autoSql Generated Code -------------------------------- */ #include "ra.h" #include "hgConfig.h" #include "obscure.h" #define MDB_METADATA_KEY "metadata" #define MDB_METAOBJ_RAKEY "metaObject" #define MDB_METAVAR_RAKEY "metaVariable" // ------- (static) convert from autoSql ------- -static void mdbVarFree(struct mdbVar **mdbVarPtr) -// Frees a single mdbVar struct -{ - freeMem((*mdbVarPtr)->val); - freeMem((*mdbVarPtr)->var); - freez(mdbVarPtr); -} - -static void mdbVarsFree(struct mdbVar **mdbVarPtr) -// Frees an mdbVars list -{ -struct mdbVar *mdbVar = NULL; -while((mdbVar = slPopHead(mdbVarPtr)) != NULL) - mdbVarFree(&mdbVar); -} - static void mdbLeafObjFree(struct mdbLeafObj **leafObjPtr) // Frees a single mdbVar struct { freeMem((*leafObjPtr)->obj); freez(leafObjPtr); } static void mdbLimbValFree(struct mdbLimbVal **limbValPtr) // Frees a single mdbVar struct { struct mdbLimbVal *limbVal = *limbValPtr; // Free hash first (shared memory) hashFree(&(limbVal->objHash)); @@ -2909,30 +2893,42 @@ { // Free hash first (shared memory) hashFree(&(mdbObj->varHash)); // free all leaves mdbVarsFree(&(mdbObj->vars)); // The rest of root freeMem(mdbObj->obj); freeMem(mdbObj); } freez(mdbObjsPtr); } } +void mdbVarsFree(struct mdbVar **mdbVarsPtr) +// Frees one or more metadata vars and any val as well +{ +struct mdbVar *mdbVar = NULL; +while((mdbVar = slPopHead(mdbVarsPtr)) != NULL) + { + freeMem(mdbVar->val); + freeMem(mdbVar->var); + freez(&mdbVar); + } +} + void mdbByVarsFree(struct mdbByVar **mdbByVarsPtr) // Frees one or more metadata vars and any contained vals and objs. Will free any hashes as well. { if(mdbByVarsPtr != NULL && *mdbByVarsPtr != NULL) { // free all roots struct mdbByVar *rootVar = NULL; while((rootVar = slPopHead(mdbByVarsPtr)) != NULL) { // Free hash first (shared memory) hashFree(&(rootVar->valHash)); // free all limbs struct mdbLimbVal *limbVal = NULL; while((limbVal = slPopHead(&(rootVar->vals))) != NULL)