diff --git a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java index 8e42b9c26..04f29390e 100644 --- a/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java +++ b/libsrc/ffdec_lib/src/com/jpexs/decompiler/flash/SWF.java @@ -294,6 +294,7 @@ public final class SWF implements SWFContainerItem, Timelined { if (checkAll || tag.isModified()) { Set needed = new HashSet<>(); tag.getNeededCharacters(needed); + boolean moved = false; for (Integer id : needed) { if (!addedCharacterIds.contains(id)) { CharacterTag neededCharacter = characters.get(id); @@ -306,8 +307,14 @@ public final class SWF implements SWFContainerItem, Timelined { tags.remove(neededCharacter); tags.add(i, neededCharacter); movedTags.add(neededCharacter); + moved = true; } } + + if (moved) { + i--; + continue; + } } if (tag instanceof CharacterTag) { addedCharacterIds.add(((CharacterTag) tag).getCharacterId());