mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-26 13:15:35 +00:00
Debugging - do not invoke getter when there is none - avoid freezing
This commit is contained in:
@@ -16,6 +16,7 @@ All notable changes to this project will be documented in this file.
|
||||
- [#2116] Limit maximum number of box blur pixels
|
||||
- [#2122] `-header` command did not support negative integers for displayrect
|
||||
- AS3 direct editation - namespaces were initialized in class initializers
|
||||
- Debugging - do not invoke getter when there is none - avoid freezing
|
||||
|
||||
|
||||
## [20.0.0] - 2023-11-05
|
||||
|
||||
Binary file not shown.
@@ -158,9 +158,9 @@ public class DebuggerHandler implements DebugConnectionListener {
|
||||
return stackLines;
|
||||
}
|
||||
|
||||
public InGetVariable getVariable(long parentId, String varName, boolean children) {
|
||||
public InGetVariable getVariable(long parentId, String varName, boolean children, boolean useGetter) {
|
||||
try {
|
||||
return commands.getVariable(parentId, varName, true, children);
|
||||
return commands.getVariable(parentId, varName, useGetter, children);
|
||||
} catch (IOException ex) {
|
||||
return null;
|
||||
}
|
||||
@@ -913,7 +913,7 @@ public class DebuggerHandler implements DebugConnectionListener {
|
||||
}
|
||||
|
||||
public synchronized InCallFunction callMethod(String object, String methodName, List<Object> args) throws ActionScriptException {
|
||||
InGetVariable igv = getVariable(0, object, false);
|
||||
InGetVariable igv = getVariable(0, object, false, false);
|
||||
return callMethod(igv.parent, methodName, args);
|
||||
}
|
||||
|
||||
|
||||
@@ -301,7 +301,7 @@ public class Main {
|
||||
if ((v.vType == VariableType.OBJECT || v.vType == VariableType.MOVIECLIP)) {
|
||||
objectId = (Long) v.value;
|
||||
}
|
||||
Object oldPos = getDebugHandler().getVariable(objectId, "position", true).parent.value;
|
||||
Object oldPos = getDebugHandler().getVariable(objectId, "position", true, true).parent.value;
|
||||
getDebugHandler().setVariable(objectId, "position", VariableType.NUMBER, 0);
|
||||
icf = getDebugHandler().callFunction(false, "readUTF", v, new ArrayList<>());
|
||||
System.out.println("Result=" + icf.variables.get(0).value);
|
||||
|
||||
@@ -350,15 +350,17 @@ public class ABCPanel extends JPanel implements ItemListener, SearchListener<Scr
|
||||
|
||||
if ("".equals(var.name)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
InGetVariable igv;
|
||||
|
||||
Long objectId = varToObjectId(varInsideGetter);
|
||||
|
||||
boolean useGetter = (var.flags & VariableFlags.HAS_GETTER) > 0;
|
||||
|
||||
if (parentObjectId == 0 && objectId != 0) {
|
||||
igv = Main.getDebugHandler().getVariable(objectId, "", true);
|
||||
igv = Main.getDebugHandler().getVariable(objectId, "", true, useGetter);
|
||||
} else {
|
||||
igv = Main.getDebugHandler().getVariable(parentObjectId, var.name, true);
|
||||
igv = Main.getDebugHandler().getVariable(parentObjectId, var.name, true, useGetter);
|
||||
}
|
||||
|
||||
//current var is getter function - set it to value really got
|
||||
|
||||
Reference in New Issue
Block a user