git.asbjorn.biz
/
swftools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
reworked tag memory allocation
[swftools.git]
/
lib
/
python
/
SWF.c
diff --git
a/lib/python/SWF.c
b/lib/python/SWF.c
index
d8ff006
..
fd7c423
100644
(file)
--- a/
lib/python/SWF.c
+++ b/
lib/python/SWF.c
@@
-128,6
+128,8
@@
static PyObject* f_load(PyObject* self, PyObject* args)
if(swf->taglist == NULL) {
return NULL;
}
if(swf->taglist == NULL) {
return NULL;
}
+
+ swf_FreeTags(&swf->swf);
swf->swf.firstTag = 0;
return (PyObject*)swf;
swf->swf.firstTag = 0;
return (PyObject*)swf;
@@
-160,6
+162,8
@@
static PyObject * swf_save(PyObject* self, PyObject* args, PyObject* kwargs)
swf->compressed = 1;
swf->firstTag = taglist_getTAGs(swfo->taglist);
swf->compressed = 1;
swf->firstTag = taglist_getTAGs(swfo->taglist);
+ if(!swf->firstTag)
+ return NULL;
// fix the file, in case it is empty or not terminated properly
{
// fix the file, in case it is empty or not terminated properly
{
@@
-167,7
+171,6
@@
static PyObject * swf_save(PyObject* self, PyObject* args, PyObject* kwargs)
if(!tag)
tag = swf->firstTag = swf_InsertTag(0,ST_END);
while(tag && tag->next) {
if(!tag)
tag = swf->firstTag = swf_InsertTag(0,ST_END);
while(tag && tag->next) {
- mylog(" tag:%08x\n", tag);
tag = tag->next;
}
if(tag->id != ST_END) {
tag = tag->next;
}
if(tag->id != ST_END) {
@@
-194,8
+197,10
@@
static PyObject * swf_save(PyObject* self, PyObject* args, PyObject* kwargs)
}
}
close(fi);
}
}
close(fi);
-
- swf->firstTag = 0;
+
+ /* TODO: why is this segfaulting?? */
+ /* swf_FreeTags(swf);
+ swf->firstTag = 0;*/
return PY_NONE;
}
return PY_NONE;
}
@@
-206,6
+211,8
@@
static PyObject * swf_writeCGI(PyObject* self, PyObject* args)
if(!self || !PyArg_ParseTuple(args,""))
return NULL;
swf->swf.firstTag = taglist_getTAGs(swf->taglist);
if(!self || !PyArg_ParseTuple(args,""))
return NULL;
swf->swf.firstTag = taglist_getTAGs(swf->taglist);
+ if(!swf->swf.firstTag)
+ return NULL;
swf_WriteCGI(&swf->swf);
swf->swf.firstTag = 0;
return PY_NONE;
swf_WriteCGI(&swf->swf);
swf->swf.firstTag = 0;
return PY_NONE;