Fixed #1772 AS1/2 decompilation - StackOverflow during getVariables function

This commit is contained in:
Jindra Petřík
2022-12-31 15:03:03 +01:00
parent 505013207b
commit 7a4bec0d98
3 changed files with 6 additions and 1 deletions

View File

@@ -999,7 +999,7 @@ public abstract class Action implements GraphSourceItem {
}
private static HashMap<String, GraphTargetItem> prepareVariables(GraphSourceItemContainer cnt, HashMap<String, GraphTargetItem> variables) {
HashMap<String, GraphTargetItem> variables2 = Helper.deepCopy(variables);
HashMap<String, GraphTargetItem> variables2 = new LinkedHashMap<>(variables);
if (cnt instanceof ActionDefineFunction || cnt instanceof ActionDefineFunction2) {
for (int r = 0; r < 256; r++) {
if (variables2.containsKey("__register" + r)) {

View File

@@ -660,7 +660,10 @@ public class Helper {
} catch (IOException | ClassNotFoundException ex) {
Logger.getLogger(Helper.class.getName()).log(Level.SEVERE, "Copy error", ex);
return null;
} catch (StackOverflowError se) {
throw new StackOverflowError("Stack overflow in deepcopy");
}
}
public static List<Object> toList(Object... rest) {