X-Git-Url: http://git.asbjorn.biz/?p=swftools.git;a=blobdiff_plain;f=src%2Fcombine.c;h=4908912f5fceb20c8d313f77dc2fa981fe0497b8;hp=bcc511b34cd7bb3c76c5899a7de025dc184bd9b4;hb=7ddcc6604ef3a6004c8fefb59d2ecdedc440b2bc;hpb=47df0688e74d14cb1aaff3fca3ac51356d632dd2 diff --git a/src/combine.c b/src/combine.c index bcc511b..4908912 100644 --- a/src/combine.c +++ b/src/combine.c @@ -402,8 +402,9 @@ void writeheader(struct writer_t*w, u8*data, int length) if(config.hassizex || config.hassizey || config.framerate) { struct flash_header head; - swf_init(data-3, length+3); - head = swf_read_header(); + struct reader_t reader; + swf_init(&reader, data-3, length+3); + head = swf_read_header(&reader); if(config.hassizex) { head.boundingBox.x2 = head.boundingBox.x1 + config.sizex; @@ -474,21 +475,27 @@ uchar * catcombine(uchar*masterdata, int masterlength, char*_slavename, uchar*sl switch(master.tags[pos].id) { case TAGID_PLACEOBJECT2: num++; - case TAGID_PLACEOBJECT: - reader_init (master.tags[pos].data, master.tags[pos].length); + case TAGID_PLACEOBJECT: { + struct reader_t r; + reader_init (&r, master.tags[pos].data, master.tags[pos].length); if(num>=2) - readu8(); - depth = readu16(); + reader_readu8(&r); + depth = reader_readu16(&r); depths[depth] = 1; + } break; - case TAGID_REMOVEOBJECT: - reader_init (master.tags[pos].data, master.tags[pos].length); - readu16(); - depths[readu16()] = 0; + case TAGID_REMOVEOBJECT: { + struct reader_t r; + reader_init (&r, master.tags[pos].data, master.tags[pos].length); + reader_readu16(&r); + depths[reader_readu16(&r)] = 0; + } break; - case TAGID_REMOVEOBJECT2: - reader_init (master.tags[pos].data, master.tags[pos].length); - depths[readu16()] = 0; + case TAGID_REMOVEOBJECT2: { + struct reader_t r; + reader_init (&r, master.tags[pos].data, master.tags[pos].length); + depths[reader_readu16(&r)] = 0; + } break; } if(master.tags[pos].id != 0)