static void _destroyJSDObject(JSDContext* jsdc, JSDObject* jsdobj) { JS_ASSERT(JSD_OBJECTS_LOCKED(jsdc)); JS_REMOVE_LINK(&jsdobj->links); JS_HashTableRemove(jsdc->objectsTable, jsdobj->obj); if(jsdobj->newURL) jsd_DropAtom(jsdc, jsdobj->newURL); if(jsdobj->ctorURL) jsd_DropAtom(jsdc, jsdobj->ctorURL); if(jsdobj->ctorName) jsd_DropAtom(jsdc, jsdobj->ctorName); free(jsdobj); }
static void _testAtoms(JSDContext*jsdc) { JSDAtom* atom0 = jsd_AddAtom(jsdc, "foo"); JSDAtom* atom1 = jsd_AddAtom(jsdc, "foo"); JSDAtom* atom2 = jsd_AddAtom(jsdc, "bar"); JSDAtom* atom3 = jsd_CloneAtom(jsdc, atom1); JSDAtom* atom4 = jsd_CloneAtom(jsdc, atom2); const char* c0 = JSD_ATOM_TO_STRING(atom0); const char* c1 = JSD_ATOM_TO_STRING(atom1); const char* c2 = JSD_ATOM_TO_STRING(atom2); const char* c3 = JSD_ATOM_TO_STRING(atom3); const char* c4 = JSD_ATOM_TO_STRING(atom4); jsd_DropAtom(jsdc, atom0); jsd_DropAtom(jsdc, atom1); jsd_DropAtom(jsdc, atom2); jsd_DropAtom(jsdc, atom3); jsd_DropAtom(jsdc, atom4); }