+ doremap = 0;
+ }
+ } else if(swf_isPseudoDefiningTag(tag)) {
+ int id = swf_GetDefineID(tag);
+ if(remap[id]!=id) {
+ /* if this tag was remapped, we don't
+ need the helper tag anymore. Discard
+ it. */
+ swf_DeleteTag(tag);
+ if(tag == swf->firstTag)
+ swf->firstTag = next;
+ doremap = 0;
+ }
+ }
+
+ if(doremap)
+ {
+ int num = swf_GetNumUsedIDs(tag);
+ int*positions = malloc(sizeof(int)*num);
+ int t;
+ swf_GetUsedIDs(tag, positions);
+ for(t=0;t<num;t++) {
+ int id = GET16(&tag->data[positions[t]]);
+ id = remap[id];
+ PUT16(&tag->data[positions[t]], id);