comparison src/share/vm/oops/oop.cpp @ 1681:126ea7725993

6953477: Increase portability and flexibility of building Hotspot Summary: A collection of portability improvements including shared code support for PPC, ARM platforms, software floating point, cross compilation support and improvements in error crash detail. Reviewed-by: phh, never, coleenp, dholmes
author bobv
date Tue, 03 Aug 2010 08:13:38 -0400
parents c18cbe5936b8
children f95d63e2154a
comparison
equal deleted inserted replaced
1680:a64438a2b7e8 1681:126ea7725993
27 27
28 bool always_do_update_barrier = false; 28 bool always_do_update_barrier = false;
29 29
30 BarrierSet* oopDesc::_bs = NULL; 30 BarrierSet* oopDesc::_bs = NULL;
31 31
32 #ifdef PRODUCT
33 void oopDesc::print_on(outputStream* st) const {}
34 void oopDesc::print_address_on(outputStream* st) const {}
35 char* oopDesc::print_string() { return NULL; }
36 void oopDesc::print() {}
37 void oopDesc::print_address() {}
38
39 #else //PRODUCT
40
41 void oopDesc::print_on(outputStream* st) const { 32 void oopDesc::print_on(outputStream* st) const {
42 if (this == NULL) { 33 if (this == NULL) {
43 st->print_cr("NULL"); 34 st->print_cr("NULL");
44 } else { 35 } else {
45 blueprint()->oop_print_on(oop(this), st); 36 blueprint()->oop_print_on(oop(this), st);
60 stringStream st; 51 stringStream st;
61 print_on(&st); 52 print_on(&st);
62 return st.as_string(); 53 return st.as_string();
63 } 54 }
64 55
65 #endif // PRODUCT
66
67 // The print_value functions are present in all builds, to support the disassembler.
68
69 void oopDesc::print_value() { 56 void oopDesc::print_value() {
70 print_value_on(tty); 57 print_value_on(tty);
71 } 58 }
72 59
73 char* oopDesc::print_value_string() { 60 char* oopDesc::print_value_string() {
81 oop obj = oop(this); 68 oop obj = oop(this);
82 if (this == NULL) { 69 if (this == NULL) {
83 st->print("NULL"); 70 st->print("NULL");
84 } else if (java_lang_String::is_instance(obj)) { 71 } else if (java_lang_String::is_instance(obj)) {
85 java_lang_String::print(obj, st); 72 java_lang_String::print(obj, st);
86 #ifndef PRODUCT
87 if (PrintOopAddress) print_address_on(st); 73 if (PrintOopAddress) print_address_on(st);
88 #endif //PRODUCT
89 #ifdef ASSERT 74 #ifdef ASSERT
90 } else if (!Universe::heap()->is_in(obj) || !Universe::heap()->is_in(klass())) { 75 } else if (!Universe::heap()->is_in(obj) || !Universe::heap()->is_in(klass())) {
91 st->print("### BAD OOP %p ###", (address)obj); 76 st->print("### BAD OOP %p ###", (address)obj);
92 #endif //ASSERT 77 #endif //ASSERT
93 } else { 78 } else {