< prev index next >

src/java.base/share/classes/jdk/internal/reflect/AccessorGenerator.java

Print this page
rev 55127 : 8223351: [lworld] Primary mirror and nullable mirror for inline type
Reviewed-by: tbd


 403             } else if (c == Character.TYPE) {
 404                 return "C";
 405             } else if (c == Double.TYPE) {
 406                 return "D";
 407             } else if (c == Float.TYPE) {
 408                 return "F";
 409             } else if (c == Integer.TYPE) {
 410                 return "I";
 411             } else if (c == Long.TYPE) {
 412                 return "J";
 413             } else if (c == Short.TYPE) {
 414                 return "S";
 415             } else if (c == Void.TYPE) {
 416                 return "V";
 417             }
 418             throw new InternalError("Should have found primitive type");
 419         } else if (c.isArray()) {
 420             return "[" + getClassName(c.getComponentType(), true);
 421         } else {
 422             if (addPrefixAndSuffixForNonPrimitiveTypes) {
 423                 if (unsafe.isValueType(c)) {
 424                     return internalize('Q' + c.getName() + ";");


 425                 } else {
 426                     return internalize('L' + c.getName() + ";");
 427                 }




 428             } else {
 429                 return internalize(c.getName());
 430             }
 431         }
 432     }
 433 
 434     private static String internalize(String className) {
 435         return className.replace('.', '/');
 436     }
 437 
 438     protected void emitConstructor() {
 439         // Generate code into fresh code buffer
 440         ClassFileAssembler cb = new ClassFileAssembler();
 441         // 0 incoming arguments
 442         cb.setMaxLocals(1);
 443         cb.opc_aload_0();
 444         cb.opc_invokespecial(superCtorIdx, 0, 0);
 445         cb.opc_return();
 446 
 447         // Emit method




 403             } else if (c == Character.TYPE) {
 404                 return "C";
 405             } else if (c == Double.TYPE) {
 406                 return "D";
 407             } else if (c == Float.TYPE) {
 408                 return "F";
 409             } else if (c == Integer.TYPE) {
 410                 return "I";
 411             } else if (c == Long.TYPE) {
 412                 return "J";
 413             } else if (c == Short.TYPE) {
 414                 return "S";
 415             } else if (c == Void.TYPE) {
 416                 return "V";
 417             }
 418             throw new InternalError("Should have found primitive type");
 419         } else if (c.isArray()) {
 420             return "[" + getClassName(c.getComponentType(), true);
 421         } else {
 422             if (addPrefixAndSuffixForNonPrimitiveTypes) {
 423                 final String desc;
 424                 if (c.isInlineClass()) {
 425                     if (c == c.asPrimaryType()) {
 426                         desc = 'Q' + c.getName() + ";";
 427                     } else {
 428                         desc = 'L' + c.asPrimaryType().getName() + ";";
 429                     }
 430                 } else {
 431                     desc = 'L' + c.getName() + ";";
 432                 }
 433                 return internalize(desc);
 434             } else {
 435                 return internalize(c.getName());
 436             }
 437         }
 438     }
 439 
 440     private static String internalize(String className) {
 441         return className.replace('.', '/');
 442     }
 443 
 444     protected void emitConstructor() {
 445         // Generate code into fresh code buffer
 446         ClassFileAssembler cb = new ClassFileAssembler();
 447         // 0 incoming arguments
 448         cb.setMaxLocals(1);
 449         cb.opc_aload_0();
 450         cb.opc_invokespecial(superCtorIdx, 0, 0);
 451         cb.opc_return();
 452 
 453         // Emit method


< prev index next >