< prev index next >

src/hotspot/share/classfile/javaClasses.cpp

Print this page




1039 
1040 
1041 void java_lang_Class::print_signature(oop java_class, outputStream* st) {
1042   assert(java_lang_Class::is_instance(java_class), "must be a Class object");
1043   Symbol* name = NULL;
1044   bool is_instance = false;
1045   bool is_value = false;
1046   if (is_primitive(java_class)) {
1047     name = vmSymbols::type_signature(primitive_type(java_class));
1048   } else {
1049     Klass* k = as_Klass(java_class);
1050     is_instance = k->is_instance_klass();
1051     is_value = k->is_value();
1052     name = k->name();
1053   }
1054   if (name == NULL) {
1055     st->print("<null>");
1056     return;
1057   }
1058   if (is_instance)  {
1059     if (is_value) {
1060       st->print("Q");
1061     } else {
1062       st->print("L");
1063     }
1064   }
1065   st->write((char*) name->base(), (int) name->utf8_length());
1066   if (is_instance)  st->print(";");
1067 }
1068 
1069 Symbol* java_lang_Class::as_signature(oop java_class, bool intern_if_not_found, TRAPS) {
1070   assert(java_lang_Class::is_instance(java_class), "must be a Class object");
1071   Symbol* name;
1072   if (is_primitive(java_class)) {
1073     name = vmSymbols::type_signature(primitive_type(java_class));
1074     // Because this can create a new symbol, the caller has to decrement
1075     // the refcount, so make adjustment here and below for symbols returned
1076     // that are not created or incremented due to a successful lookup.
1077     name->increment_refcount();
1078   } else {
1079     Klass* k = as_Klass(java_class);
1080     if (!k->is_instance_klass()) {
1081       name = k->name();
1082       name->increment_refcount();
1083     } else {
1084       ResourceMark rm;




1039 
1040 
1041 void java_lang_Class::print_signature(oop java_class, outputStream* st) {
1042   assert(java_lang_Class::is_instance(java_class), "must be a Class object");
1043   Symbol* name = NULL;
1044   bool is_instance = false;
1045   bool is_value = false;
1046   if (is_primitive(java_class)) {
1047     name = vmSymbols::type_signature(primitive_type(java_class));
1048   } else {
1049     Klass* k = as_Klass(java_class);
1050     is_instance = k->is_instance_klass();
1051     is_value = k->is_value();
1052     name = k->name();
1053   }
1054   if (name == NULL) {
1055     st->print("<null>");
1056     return;
1057   }
1058   if (is_instance)  {



1059       st->print("L");
1060   }

1061   st->write((char*) name->base(), (int) name->utf8_length());
1062   if (is_instance)  st->print(";");
1063 }
1064 
1065 Symbol* java_lang_Class::as_signature(oop java_class, bool intern_if_not_found, TRAPS) {
1066   assert(java_lang_Class::is_instance(java_class), "must be a Class object");
1067   Symbol* name;
1068   if (is_primitive(java_class)) {
1069     name = vmSymbols::type_signature(primitive_type(java_class));
1070     // Because this can create a new symbol, the caller has to decrement
1071     // the refcount, so make adjustment here and below for symbols returned
1072     // that are not created or incremented due to a successful lookup.
1073     name->increment_refcount();
1074   } else {
1075     Klass* k = as_Klass(java_class);
1076     if (!k->is_instance_klass()) {
1077       name = k->name();
1078       name->increment_refcount();
1079     } else {
1080       ResourceMark rm;


< prev index next >