mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-25 05:40:45 +00:00
error message when constant pool is too big
This commit is contained in:
@@ -30,6 +30,7 @@ import com.jpexs.decompiler.flash.action.parser.script.ParsedSymbol;
|
||||
import com.jpexs.decompiler.flash.action.parser.script.SymbolType;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ActionPush;
|
||||
import com.jpexs.decompiler.flash.action.swf4.ConstantIndex;
|
||||
import com.jpexs.decompiler.flash.action.swf5.ActionConstantPool;
|
||||
import com.jpexs.decompiler.flash.configuration.Configuration;
|
||||
import com.jpexs.decompiler.flash.exporters.modes.ScriptExportMode;
|
||||
import com.jpexs.decompiler.flash.gui.AppStrings;
|
||||
@@ -786,7 +787,16 @@ public class ActionPanel extends JPanel implements SearchListener<ActionSearchRe
|
||||
if (trimmed.startsWith(Helper.hexData)) {
|
||||
src.setActionBytes(Helper.getBytesFromHexaText(text));
|
||||
} else if (trimmed.startsWith(Helper.constants)) {
|
||||
src.setConstantPools(Helper.getConstantPoolsFromText(text));
|
||||
List<List<String>> constantPools = Helper.getConstantPoolsFromText(text);
|
||||
for (int i = 0; i < constantPools.size(); i++) {
|
||||
List<String> constantPool = constantPools.get(i);
|
||||
int size = ActionConstantPool.calculateSize(constantPool);
|
||||
if (size > 0xffff) {
|
||||
View.showMessageDialog(this, AppStrings.translate("error.constantPoolTooBig").replace("%index%", Integer.toString(i)).replace("%size%", Integer.toString(size)), AppStrings.translate("error"), JOptionPane.ERROR_MESSAGE);
|
||||
}
|
||||
}
|
||||
|
||||
src.setConstantPools(constantPools);
|
||||
} else {
|
||||
src.setActions(ASMParser.parse(0, true, text, src.getSwf().version, false));
|
||||
}
|
||||
@@ -806,6 +816,8 @@ public class ActionPanel extends JPanel implements SearchListener<ActionSearchRe
|
||||
editor.gotoLine((int) ex.line);
|
||||
editor.markError();
|
||||
View.showMessageDialog(this, AppStrings.translate("error.action.save").replace("%error%", ex.text).replace("%line%", Long.toString(ex.line)), AppStrings.translate("error"), JOptionPane.ERROR_MESSAGE);
|
||||
} catch (Throwable ex) {
|
||||
logger.log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -623,3 +623,5 @@ filter.linuxExe = Linux Executable files
|
||||
|
||||
import.script.result = %count% scripts imported.
|
||||
import.script.as12warning = Import script can import only AS1/2 scripts.
|
||||
|
||||
error.constantPoolTooBig = Constant pool is too big. index=%index%, size=%size%
|
||||
|
||||
@@ -622,3 +622,5 @@ filter.linuxExe = Linux futtathat\u00f3 f\u00e1jlok
|
||||
|
||||
import.script.result = %count% szkript import\u00e1lva.
|
||||
import.script.as12warning = A szkript import\u00e1l\u00e1s csak AS1/2 szkriptekre m\u0171k\u00f6dik.
|
||||
|
||||
error.constantPoolTooBig = Karakter l\u00e1nc t\u00e1rol\u00f3 t\u00fal nagy. index=%index%, m\u00e9ret=%size%
|
||||
|
||||
Reference in New Issue
Block a user