X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=lib%2Fpython%2Ftagmap.c;h=66429e571d7ddb06045f66fb2e6467f21b0d55a0;hb=bdad407fb79c2f7be9f3603694ebdeadc645b52d;hp=317d817e4a3bb597ed215a7db937dbddd6e61879;hpb=3281edc9ef69c0ba876f0146f55540227aa6a7fb;p=swftools.git diff --git a/lib/python/tagmap.c b/lib/python/tagmap.c index 317d817..66429e5 100644 --- a/lib/python/tagmap.c +++ b/lib/python/tagmap.c @@ -37,25 +37,26 @@ typedef struct { PyObject* tagmap_new() { PyObject* self = (PyObject*)PyObject_New(TagMapObject, &TagMapClass); - mylog("+%08x(%d) tagmap_new", (int)self, self->ob_refcnt); TagMapObject*tagmap = (TagMapObject*)self; tagmap->obj2id = PyDict_New(); tagmap->id2obj = PyDict_New(); tagmap->objlist = PyList_New(0); tagmap->currentID = 0; //IDs start at 1 +/* mylog("+%08x(%d) tagmap_new %08x(%d) %08x(%d), %08x(%d)", (int)self, self->ob_refcnt, + tagmap->obj2id, tagmap->obj2id->ob_refcnt , + tagmap->id2obj, tagmap->id2obj->ob_refcnt , + tagmap->objlist, tagmap->objlist->ob_refcnt);*/ return self; } //---------------------------------------------------------------------------- int tagmap_obj2id(PyObject* self, PyObject* obj) { - mylog(" %08x(%d) tagmap_obj2id %08x", (int)self, self->ob_refcnt, obj); TagMapObject*tagmap = (TagMapObject*)self; PyObject*id = PyDict_GetItem(tagmap->obj2id, obj); if(id == 0) return -1; int _id = PyLong_AsLong(id); - Py_DECREF(id); return _id; } @@ -65,14 +66,12 @@ PyObject* tagmap_id2obj(PyObject* self, int _id) TagMapObject*tagmap = (TagMapObject*)self; PyObject*id = PyLong_FromLong(_id); PyObject*obj = PyDict_GetItem(tagmap->id2obj, id); - mylog(" %08x(%d) tagmap_id2obj %d->%08x", (int)self, self->ob_refcnt, _id, obj); Py_DECREF(id); return obj; } //---------------------------------------------------------------------------- int tagmap_getFreeID(PyObject*self) { - mylog(" %08x(%d) tagmap_getFreeID", (int)self, self->ob_refcnt); TagMapObject*tagmap = (TagMapObject*)self; int last = tagmap->currentID; do { @@ -130,8 +129,12 @@ int tagmap_add(PyObject* self, PyObject* obj) //---------------------------------------------------------------------------- void tagmap_dealloc(PyObject* self) { - mylog("-%08x(%d) tagmap_dealloc", (int)self, self->ob_refcnt); TagMapObject*tagmap = (TagMapObject*)self; + mylog("-%08x(%d) tagmap_dealloc %08x(%d) %08x(%d), %08x(%d)", (int)self, self->ob_refcnt, + tagmap->obj2id, tagmap->obj2id->ob_refcnt , + tagmap->id2obj, tagmap->id2obj->ob_refcnt , + tagmap->objlist, tagmap->objlist->ob_refcnt); + Py_DECREF(tagmap->obj2id); tagmap->obj2id = 0; Py_DECREF(tagmap->id2obj); @@ -145,7 +148,6 @@ PyObject* tagmap_getObjectList(PyObject* self) { mylog(" %08x(%d) tagmap_getObjectList", (int)self, self->ob_refcnt); TagMapObject*tagmap = (TagMapObject*)self; - Py_INCREF(tagmap->objlist); return tagmap->objlist; } //----------------------------------------------------------------------------