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