mirror of
https://git.huckle.dev/Huckles-Minecraft-Archive/jpexs-decompiler.git
synced 2026-09-24 20:30:45 +00:00
TypeName datatype fixed
This commit is contained in:
@@ -176,6 +176,7 @@ public class ABCInputStream extends InputStream {
|
||||
int namespace_index = -1;
|
||||
int name_index = -1;
|
||||
int namespace_set_index = -1;
|
||||
int qname_index=-1;
|
||||
List<Integer> params=new ArrayList<Integer>();
|
||||
|
||||
if ((kind == 7) || (kind == 0xd)) { // CONSTANT_QName and CONSTANT_QNameA.
|
||||
@@ -202,10 +203,10 @@ public class ABCInputStream extends InputStream {
|
||||
else if(kind==0x1D)
|
||||
{
|
||||
//Constant_TypeName
|
||||
name_index=readU30();
|
||||
qname_index=readU30(); //Multiname index!!!
|
||||
int paramsLength=readU30();
|
||||
for(int i=0;i<paramsLength;i++){
|
||||
params.add(readU30());
|
||||
params.add(readU30()); //multiname indices!
|
||||
}
|
||||
}
|
||||
else{
|
||||
@@ -213,7 +214,7 @@ public class ABCInputStream extends InputStream {
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
return new Multiname(kind, name_index, namespace_index, namespace_set_index,params);
|
||||
return new Multiname(kind, name_index, namespace_index, namespace_set_index,qname_index,params);
|
||||
}
|
||||
|
||||
public MethodInfo readMethodInfo() throws IOException {
|
||||
|
||||
@@ -184,7 +184,7 @@ public class ABCOutputStream extends OutputStream {
|
||||
}
|
||||
if(m.kind==0x1D)
|
||||
{
|
||||
writeU30(m.name_index);
|
||||
writeU30(m.qname_index);
|
||||
writeU30(m.params.size());
|
||||
for(int i=0;i<m.params.size();i++)
|
||||
{
|
||||
|
||||
@@ -43,14 +43,16 @@ public class Multiname {
|
||||
public int name_index = -1;
|
||||
public int namespace_index = -1;
|
||||
public int namespace_set_index = -1;
|
||||
public List<Integer> params;
|
||||
public int qname_index = -1; //for TypeName
|
||||
public List<Integer> params; //for TypeName
|
||||
|
||||
|
||||
public Multiname(int kind, int name_index, int namespace_index, int namespace_set_index,List<Integer> params) {
|
||||
public Multiname(int kind, int name_index, int namespace_index, int namespace_set_index,int qname_index,List<Integer> params) {
|
||||
this.kind = kind;
|
||||
this.name_index = name_index;
|
||||
this.namespace_index = namespace_index;
|
||||
this.namespace_set_index = namespace_set_index;
|
||||
this.qname_index = qname_index;
|
||||
this.params=params;
|
||||
}
|
||||
|
||||
@@ -101,7 +103,7 @@ public class Multiname {
|
||||
@Override
|
||||
public String toString() {
|
||||
String kindStr = getKindStr();
|
||||
return "kind=" + kindStr + " name_index=" + name_index + " namespace_index=" + namespace_index + " namespace_set_index=" + namespace_set_index;
|
||||
return "kind=" + kindStr + " name_index=" + name_index + " namespace_index=" + namespace_index + " namespace_set_index=" + namespace_set_index+" qname_index="+qname_index+" params_size:"+params.size();
|
||||
|
||||
}
|
||||
|
||||
@@ -133,8 +135,23 @@ public class Multiname {
|
||||
if (namespace_set_index > 0) {
|
||||
namespaceSetStr = " <NS:" + constants.constant_namespace_set[namespace_set_index].toString(constants) + ">";
|
||||
}
|
||||
//kindStr+" "+
|
||||
return namespaceStr + nameStr + namespaceSetStr;
|
||||
String typeNameStr="";
|
||||
if(kind==TYPENAME){
|
||||
typeNameStr="Type: "+constants.constant_multiname[qname_index].toString(constants);
|
||||
if(!params.isEmpty()){
|
||||
typeNameStr+="<";
|
||||
for(int i=0;i<params.size();i++)
|
||||
{
|
||||
if(i>0){
|
||||
typeNameStr+=",";
|
||||
}
|
||||
typeNameStr+=constants.constant_multiname[params.get(i)].toString(constants);
|
||||
}
|
||||
typeNameStr+=">";
|
||||
}
|
||||
}
|
||||
|
||||
return namespaceStr + nameStr + namespaceSetStr + typeNameStr;
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user