diff --git a/trunk/src/com/jpexs/asdec/abc/ABCInputStream.java b/trunk/src/com/jpexs/asdec/abc/ABCInputStream.java index 36b536123..13126272f 100644 --- a/trunk/src/com/jpexs/asdec/abc/ABCInputStream.java +++ b/trunk/src/com/jpexs/asdec/abc/ABCInputStream.java @@ -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 params=new ArrayList(); 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 params; + public int qname_index = -1; //for TypeName + public List params; //for TypeName - public Multiname(int kind, int name_index, int namespace_index, int namespace_set_index,List params) { + public Multiname(int kind, int name_index, int namespace_index, int namespace_set_index,int qname_index,List 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 = " "; } - //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;i0){ + typeNameStr+=","; + } + typeNameStr+=constants.constant_multiname[params.get(i)].toString(constants); + } + typeNameStr+=">"; + } + } + + return namespaceStr + nameStr + namespaceSetStr + typeNameStr; }