comparison src/share/vm/classfile/javaClasses.cpp @ 6985:80e866b1d053

Merge
author coleenp
date Fri, 16 Nov 2012 09:19:12 -0500
parents bd7a7ce2e264 070d523b96a7
children 2cb439954abf f34d701e952e
comparison
equal deleted inserted replaced
6974:6b6ddf8c4329 6985:80e866b1d053
559 comp_mirror = Universe::java_mirror(type); 559 comp_mirror = Universe::java_mirror(type);
560 } else { 560 } else {
561 assert(k->oop_is_objArray(), "Must be"); 561 assert(k->oop_is_objArray(), "Must be");
562 Klass* element_klass = ObjArrayKlass::cast(k())->element_klass(); 562 Klass* element_klass = ObjArrayKlass::cast(k())->element_klass();
563 assert(element_klass != NULL, "Must have an element klass"); 563 assert(element_klass != NULL, "Must have an element klass");
564 comp_mirror = Klass::cast(element_klass)->java_mirror(); 564 comp_mirror = element_klass->java_mirror();
565 } 565 }
566 assert(comp_mirror.not_null(), "must have a mirror"); 566 assert(comp_mirror.not_null(), "must have a mirror");
567 567
568 // Two-way link between the array klass and its component mirror: 568 // Two-way link between the array klass and its component mirror:
569 ArrayKlass::cast(k())->set_component_mirror(comp_mirror()); 569 ArrayKlass::cast(k())->set_component_mirror(comp_mirror());
642 bool is_instance = false; 642 bool is_instance = false;
643 if (is_primitive(java_class)) { 643 if (is_primitive(java_class)) {
644 name = vmSymbols::type_signature(primitive_type(java_class)); 644 name = vmSymbols::type_signature(primitive_type(java_class));
645 } else { 645 } else {
646 Klass* k = as_Klass(java_class); 646 Klass* k = as_Klass(java_class);
647 is_instance = Klass::cast(k)->oop_is_instance(); 647 is_instance = k->oop_is_instance();
648 name = Klass::cast(k)->name(); 648 name = k->name();
649 } 649 }
650 if (name == NULL) { 650 if (name == NULL) {
651 st->print("<null>"); 651 st->print("<null>");
652 return; 652 return;
653 } 653 }
665 // the refcount, so make adjustment here and below for symbols returned 665 // the refcount, so make adjustment here and below for symbols returned
666 // that are not created or incremented due to a successful lookup. 666 // that are not created or incremented due to a successful lookup.
667 name->increment_refcount(); 667 name->increment_refcount();
668 } else { 668 } else {
669 Klass* k = as_Klass(java_class); 669 Klass* k = as_Klass(java_class);
670 if (!Klass::cast(k)->oop_is_instance()) { 670 if (!k->oop_is_instance()) {
671 name = Klass::cast(k)->name(); 671 name = k->name();
672 name->increment_refcount(); 672 name->increment_refcount();
673 } else { 673 } else {
674 ResourceMark rm; 674 ResourceMark rm;
675 const char* sigstr = Klass::cast(k)->signature_name(); 675 const char* sigstr = k->signature_name();
676 int siglen = (int) strlen(sigstr); 676 int siglen = (int) strlen(sigstr);
677 if (!intern_if_not_found) { 677 if (!intern_if_not_found) {
678 name = SymbolTable::probe(sigstr, siglen); 678 name = SymbolTable::probe(sigstr, siglen);
679 } else { 679 } else {
680 name = SymbolTable::new_symbol(sigstr, siglen, THREAD); 680 name = SymbolTable::new_symbol(sigstr, siglen, THREAD);
685 } 685 }
686 686
687 687
688 Klass* java_lang_Class::array_klass(oop java_class) { 688 Klass* java_lang_Class::array_klass(oop java_class) {
689 Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset)); 689 Klass* k = ((Klass*)java_class->metadata_field(_array_klass_offset));
690 assert(k == NULL || k->is_klass() && Klass::cast(k)->oop_is_array(), "should be array klass"); 690 assert(k == NULL || k->is_klass() && k->oop_is_array(), "should be array klass");
691 return k; 691 return k;
692 } 692 }
693 693
694 694
695 void java_lang_Class::set_array_klass(oop java_class, Klass* klass) { 695 void java_lang_Class::set_array_klass(oop java_class, Klass* klass) {
696 assert(klass->is_klass() && Klass::cast(klass)->oop_is_array(), "should be array klass"); 696 assert(klass->is_klass() && klass->oop_is_array(), "should be array klass");
697 java_class->metadata_field_put(_array_klass_offset, klass); 697 java_class->metadata_field_put(_array_klass_offset, klass);
698 } 698 }
699 699
700 700
701 Method* java_lang_Class::resolved_constructor(oop java_class) { 701 Method* java_lang_Class::resolved_constructor(oop java_class) {