Mercurial > hg > truffle
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) { |