< prev index next >

src/jdk.jdi/share/classes/com/sun/tools/jdi/JNITypeParser.java

Print this page
rev 58768 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: alanb, cjplummer, coleenp, dholmes, dlong, forax, jlahoda, psandoz, plevart, vromero
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com, jan.lahoda@oracle.com, amy.lu@oracle.com
rev 58769 : imported patch type-descriptor-name

*** 75,90 **** } else { sb.append('L'); index = typeName.indexOf("/"); // check if it's a hidden class if (index < 0) { sb.append(typeName.replace('.', '/')); } else { sb.append(typeName.substring(0, index).replace('.', '/')); ! sb.append("."); ! sb.append(typeName.substring(index+1, typeName.length())); } - sb.append(';'); } return sb.toString(); } --- 75,90 ---- } else { sb.append('L'); index = typeName.indexOf("/"); // check if it's a hidden class if (index < 0) { sb.append(typeName.replace('.', '/')); + sb.append(";"); } else { sb.append(typeName.substring(0, index).replace('.', '/')); ! sb.append(";"); ! sb.append(typeName.substring(index, typeName.length())); } } return sb.toString(); }
*** 163,175 **** return key + nextSignature(); case (JDWP.Tag.OBJECT): int endClass = signature.indexOf(SIGNATURE_ENDCLASS, currentIndex); ! String retVal = signature.substring(currentIndex - 1, ! endClass + 1); currentIndex = endClass + 1; return retVal; case (JDWP.Tag.VOID): case (JDWP.Tag.BOOLEAN): case (JDWP.Tag.BYTE): --- 163,181 ---- return key + nextSignature(); case (JDWP.Tag.OBJECT): int endClass = signature.indexOf(SIGNATURE_ENDCLASS, currentIndex); ! String retVal; ! if ((endClass+1) < signature.length() && signature.charAt(endClass+1) == '/') { ! // hidden class ! retVal = signature.substring(currentIndex - 1); ! currentIndex = signature.length(); ! } else { ! retVal = signature.substring(currentIndex - 1, endClass + 1); currentIndex = endClass + 1; + } return retVal; case (JDWP.Tag.VOID): case (JDWP.Tag.BOOLEAN): case (JDWP.Tag.BYTE):
*** 208,225 **** case (JDWP.Tag.OBJECT): int endClass = signature.indexOf(SIGNATURE_ENDCLASS, currentIndex); String retVal = signature.substring(currentIndex, endClass); ! int index = retVal.indexOf("."); ! if (index < 0) { ! retVal = retVal.replace('/', '.'); } else { ! retVal = retVal.substring(0, index).replace('/', '.') + "/" + ! retVal.substring(index + 1, retVal.length()); ! } currentIndex = endClass + 1; return retVal; case (JDWP.Tag.FLOAT): return "float"; --- 214,231 ---- case (JDWP.Tag.OBJECT): int endClass = signature.indexOf(SIGNATURE_ENDCLASS, currentIndex); String retVal = signature.substring(currentIndex, endClass); ! if ((endClass+1) < signature.length() && signature.charAt(endClass+1) == '/') { ! // hidden class ! retVal = retVal.replace('/', '.') + signature.substring(endClass + 1); ! currentIndex = signature.length(); } else { ! retVal = retVal.replace('/', '.'); currentIndex = endClass + 1; + } return retVal; case (JDWP.Tag.FLOAT): return "float";
< prev index next >