mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-06-06 17:36:13 +00:00
#649: gfx reading bug fixed
This commit is contained in:
@@ -1048,7 +1048,7 @@ public class SWFInputStream implements AutoCloseable {
|
||||
} else {
|
||||
switch (tag.getId()) {
|
||||
case FileAttributesTag.ID: //FileAttributes
|
||||
faPos = tagCnt-1; //should be 0, as it is first tag, but anyway
|
||||
faPos = tagCnt - 1; //should be 0, as it is first tag, but anyway
|
||||
if (tag instanceof TagStub) {
|
||||
tag = resolveTag((TagStub) tag, level, parallel, skipUnusualTags);
|
||||
}
|
||||
@@ -1117,8 +1117,8 @@ public class SWFInputStream implements AutoCloseable {
|
||||
executor.shutdown();
|
||||
}
|
||||
//Workaround to not reading fileattributes twice. TODO:Handle this better
|
||||
if(parallel && fileAttributes!=null){
|
||||
tags.add(faPos,fileAttributes);
|
||||
if (parallel && fileAttributes != null) {
|
||||
tags.add(faPos, fileAttributes);
|
||||
}
|
||||
return tags;
|
||||
}
|
||||
@@ -1460,7 +1460,7 @@ public class SWFInputStream implements AutoCloseable {
|
||||
DumpInfo di = dumpInfo;
|
||||
try {
|
||||
ret = resolveTag(tagStub, level, parallel, skipUnusualTags);
|
||||
} catch (EndOfStreamException ex) {
|
||||
} catch (Exception ex) {
|
||||
tagDataStream.endDumpLevelUntil(di);
|
||||
logger.log(Level.SEVERE, "Problem in " + timelined.toString(), ex);
|
||||
}
|
||||
|
||||
@@ -175,7 +175,7 @@ public class Deobfuscation {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isValidName(String s){
|
||||
public static boolean isValidName(String s) {
|
||||
boolean isValid = true;
|
||||
if (Action.isReservedWord(s)) {
|
||||
isValid = false;
|
||||
@@ -198,7 +198,7 @@ public class Deobfuscation {
|
||||
}
|
||||
return isValid;
|
||||
}
|
||||
|
||||
|
||||
public String deobfuscateName(String s, boolean firstUppercase, String usageType, HashMap<String, String> namesMap, RenameType renameType, Map<String, String> selected) {
|
||||
boolean isValid = true;
|
||||
if (usageType == null) {
|
||||
|
||||
@@ -83,18 +83,18 @@ public class FunctionActionItem extends ActionItem {
|
||||
if (calculatedFunctionName != null) {
|
||||
writer.append(" ");
|
||||
String fname = calculatedFunctionName.toStringNoQuotes(localData);
|
||||
if(!Deobfuscation.isValidName(fname)){
|
||||
if (!Deobfuscation.isValidName(fname)) {
|
||||
calculatedFunctionName.appendTo(writer, localData); //Use quotes
|
||||
}else{
|
||||
} else {
|
||||
calculatedFunctionName.appendToNoQuotes(writer, localData);
|
||||
}
|
||||
} else if (!functionName.isEmpty()) {
|
||||
writer.append(" ");
|
||||
if(!Deobfuscation.isValidName(functionName)){
|
||||
if (!Deobfuscation.isValidName(functionName)) {
|
||||
writer.append("\"");
|
||||
writer.append(Helper.escapeString(functionName));
|
||||
writer.append("\"");
|
||||
}else{
|
||||
} else {
|
||||
writer.append(functionName);
|
||||
}
|
||||
}
|
||||
@@ -109,7 +109,7 @@ public class FunctionActionItem extends ActionItem {
|
||||
if (pname == null || pname.isEmpty()) {
|
||||
pname = new RegisterNumber(regStart + p).translate();
|
||||
}
|
||||
if(!Deobfuscation.isValidName(pname)){
|
||||
if (!Deobfuscation.isValidName(pname)) {
|
||||
writer.append("\"");
|
||||
writer.append(Helper.escapeString(pname));
|
||||
writer.append("\"");
|
||||
|
||||
@@ -50,10 +50,10 @@ public class GetMemberActionItem extends ActionItem {
|
||||
@Override
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
object.toString(writer, localData);
|
||||
if((!(memberName instanceof DirectValueActionItem)) || (!((DirectValueActionItem)memberName).isString()) ||(!Deobfuscation.isValidName(((DirectValueActionItem)memberName).toStringNoQuotes(localData)))){
|
||||
if ((!(memberName instanceof DirectValueActionItem)) || (!((DirectValueActionItem) memberName).isString()) || (!Deobfuscation.isValidName(((DirectValueActionItem) memberName).toStringNoQuotes(localData)))) {
|
||||
writer.append("[");
|
||||
memberName.toString(writer, localData);
|
||||
return writer.append("]");
|
||||
return writer.append("]");
|
||||
}
|
||||
writer.append(".");
|
||||
return stripQuotes(memberName, localData, writer);
|
||||
|
||||
@@ -53,13 +53,13 @@ public class GetVariableActionItem extends ActionItem {
|
||||
|
||||
@Override
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
if((!(name instanceof DirectValueActionItem)) || (!((DirectValueActionItem)name).isString()) ||(!Deobfuscation.isValidName(((DirectValueActionItem)name).toStringNoQuotes(localData)))){
|
||||
if((!((DirectValueActionItem)name).toStringNoQuotes(localData).equals("this"))&&(!((DirectValueActionItem)name).toStringNoQuotes(localData).equals("super"))){
|
||||
if ((!(name instanceof DirectValueActionItem)) || (!((DirectValueActionItem) name).isString()) || (!Deobfuscation.isValidName(((DirectValueActionItem) name).toStringNoQuotes(localData)))) {
|
||||
if ((!((DirectValueActionItem) name).toStringNoQuotes(localData).equals("this")) && (!((DirectValueActionItem) name).toStringNoQuotes(localData).equals("super"))) {
|
||||
writer.append("eval(");
|
||||
name.appendTo(writer, localData);
|
||||
return writer.append(")");
|
||||
}
|
||||
}
|
||||
}
|
||||
return stripQuotes(name, localData, writer);
|
||||
}
|
||||
|
||||
|
||||
@@ -84,12 +84,12 @@ public class SetMemberActionItem extends ActionItem implements SetTypeActionItem
|
||||
@Override
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
object.toString(writer, localData);
|
||||
|
||||
if((!(objectName instanceof DirectValueActionItem)) || (!((DirectValueActionItem)objectName).isString()) ||(!Deobfuscation.isValidName(((DirectValueActionItem)objectName).toStringNoQuotes(localData)))){
|
||||
|
||||
if ((!(objectName instanceof DirectValueActionItem)) || (!((DirectValueActionItem) objectName).isString()) || (!Deobfuscation.isValidName(((DirectValueActionItem) objectName).toStringNoQuotes(localData)))) {
|
||||
writer.append("[");
|
||||
objectName.toString(writer, localData);
|
||||
writer.append("]");
|
||||
}else{
|
||||
} else {
|
||||
writer.append(".");
|
||||
stripQuotes(objectName, localData, writer);
|
||||
}
|
||||
|
||||
@@ -74,7 +74,7 @@ public class SetVariableActionItem extends ActionItem implements SetTypeActionIt
|
||||
|
||||
@Override
|
||||
public GraphTextWriter appendTo(GraphTextWriter writer, LocalData localData) throws InterruptedException {
|
||||
if (((name instanceof DirectValueActionItem)&&((DirectValueActionItem)name).isString() && Deobfuscation.isValidName(((DirectValueActionItem)name).toStringNoQuotes(localData))) || name instanceof VariableActionItem) {
|
||||
if (((name instanceof DirectValueActionItem) && ((DirectValueActionItem) name).isString() && Deobfuscation.isValidName(((DirectValueActionItem) name).toStringNoQuotes(localData))) || name instanceof VariableActionItem) {
|
||||
stripQuotes(name, localData, writer);
|
||||
writer.append(" = ");
|
||||
return value.toString(writer, localData);
|
||||
|
||||
@@ -41,7 +41,7 @@ public class ActionGetProperty extends Action {
|
||||
GraphTargetItem target = stack.pop();
|
||||
int indexInt = 0;
|
||||
if (index instanceof DirectValueActionItem) {
|
||||
Object value = ((DirectValueActionItem) index).value;
|
||||
Object value = ((DirectValueActionItem) index).value;
|
||||
if (value instanceof Long) {
|
||||
indexInt = (int) (long) (Long) value;
|
||||
} else if (value instanceof Double) {
|
||||
|
||||
@@ -277,7 +277,7 @@ public class MainFrameRibbonMenu implements MainFrameMenu, ActionListener {
|
||||
}
|
||||
|
||||
private List<RibbonBandResizePolicy> getEmptyResizePolicies(JRibbonBand ribbonBand) {
|
||||
List<RibbonBandResizePolicy> resizePolicies = new ArrayList<>();
|
||||
List<RibbonBandResizePolicy> resizePolicies = new ArrayList<>();
|
||||
resizePolicies.add(new BaseRibbonBandResizePolicy<AbstractBandControlPanel>(ribbonBand.getControlPanel()) {
|
||||
@Override
|
||||
public int getPreferredWidth(int i, int i1) {
|
||||
|
||||
@@ -63,11 +63,15 @@ public class FontType implements Serializable {
|
||||
kerning.add(new KerningPairType(sis));
|
||||
}
|
||||
|
||||
long pos = sis.getPos();
|
||||
|
||||
glyphs = new ArrayList<>();
|
||||
for (int i = 0; i < glyphInfo.size(); i++) {
|
||||
sis.setPos(glyphInfo.get(i).globalOffset);
|
||||
glyphs.add(new GlyphType(sis));
|
||||
}
|
||||
|
||||
sis.setPos(pos);
|
||||
}
|
||||
|
||||
public List<SHAPE> getGlyphShapes() {
|
||||
|
||||
@@ -167,7 +167,6 @@ public class GFxInputStream {
|
||||
/**
|
||||
* Reads one string value from the stream
|
||||
*
|
||||
* @param name
|
||||
* @return String value
|
||||
* @throws IOException
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user