git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
new tags are now mapped to their own IDs, not an allocated one
[swftools.git]
/
lib
/
python
/
taglist.c
diff --git
a/lib/python/taglist.c
b/lib/python/taglist.c
index
27b3a66
..
e4eeffc
100644
(file)
--- a/
lib/python/taglist.c
+++ b/
lib/python/taglist.c
@@
-19,7
+19,7
@@
typedef struct {
PyObject * taglist_new()
{
TagListObject* taglist = PyObject_New(TagListObject, &TagListClass);
PyObject * taglist_new()
{
TagListObject* taglist = PyObject_New(TagListObject, &TagListClass);
- mylog("+%08x(%d) taglist_new2", (int)taglist, taglist->ob_refcnt);
+ mylog("+%08x(%d) taglist_new", (int)taglist, taglist->ob_refcnt);
taglist->tagmap = tagmap_new();
taglist->taglist = PyList_New(0);
return (PyObject*)taglist;
taglist->tagmap = tagmap_new();
taglist->taglist = PyList_New(0);
return (PyObject*)taglist;
@@
-28,21
+28,28
@@
PyObject * taglist_new()
PyObject * taglist_new2(TAG*tag)
{
TagListObject* taglist = PyObject_New(TagListObject, &TagListClass);
PyObject * taglist_new2(TAG*tag)
{
TagListObject* taglist = PyObject_New(TagListObject, &TagListClass);
- mylog("+%08x(%d) taglist_new2", (int)taglist, taglist->ob_refcnt);
+ mylog("+%08x(%d) taglist_new2 tag=%08x", (int)taglist, taglist->ob_refcnt, tag);
taglist->tagmap = tagmap_new();
int nr=0;
TAG*t = tag;
while(t) {nr++;t=t->next;}
taglist->taglist = PyList_New(nr);
taglist->tagmap = tagmap_new();
int nr=0;
TAG*t = tag;
while(t) {nr++;t=t->next;}
taglist->taglist = PyList_New(nr);
+
+ mylog("+%08x(%d) taglist_new2: %d items", (int)taglist, taglist->ob_refcnt, nr);
nr = 0;
t = tag;
while(t) {
nr = 0;
t = tag;
while(t) {
- PyObject*newtag = tag_new(tag);
+ PyObject*newtag = tag_new2(t, taglist->tagmap);
+ if(newtag==NULL) {
+ // pass through exception
+ return NULL;
+ }
PyList_SET_ITEM(taglist->taglist,nr,newtag);Py_INCREF(newtag);
if(swf_isDefiningTag(t)) {
PyList_SET_ITEM(taglist->taglist,nr,newtag);Py_INCREF(newtag);
if(swf_isDefiningTag(t)) {
- tagmap_add(taglist->tagmap, newtag);
+ int id = swf_GetDefineID(t);
+ tagmap_addMapping(taglist->tagmap, id, newtag);
}
nr++;
t=t->next;
}
nr++;
t=t->next;
@@
-70,6
+77,7
@@
TAG* taglist_getTAGs(PyObject*self)
tag = tag_getTAG(item, tag, taglist->tagmap);
if(!firstTag)
firstTag = tag;
tag = tag_getTAG(item, tag, taglist->tagmap);
if(!firstTag)
firstTag = tag;
+ mylog(" %08x(%d) taglist_getTAGs: added tag %08x", (int)self, self->ob_refcnt, tag);
}
return firstTag;
}
}
return firstTag;
}