int sa3adddecl (sa3cg cg, char* type, char* func, char* param) { uint32 size = 0; sa3decl* d = NULL; int saret = 0; uint16 keylen = 0; char* key = NULL; char* _func = NULL; CHK_CG (cg, saret); CHK_STR (type, saret); CHK_STR (func, saret); CHK_STR (param, saret); CALL_API (saret, getstruct (&size, (void**) &d, 3, type, func, param)); /* TODO: child thread start */ { _func = (char*) PI2PTR (d, d->func); // CALL_API (saret, getkey ("dl \0", (const char*) _func, &keylen, &key)); CALL_API (saret, put_ent (cg->pdb, _func, STRLEN(_func), (void*) d, size, DL)); } /* TODO: child thread end */ CLEANUP: if (NULL != d) { freestruct ((void**)&d); } if (NULL != key) { freekey (&key); } return saret; }
void freeshfuncnode(HashNode hn) { Shfunc shf = (Shfunc) hn; zsfree(shf->nam); if (shf->funcdef) freestruct(shf->funcdef); zfree(shf, sizeof(struct shfunc)); }