< prev index next >

src/share/vm/compiler/oopMap.cpp

Print this page
rev 12854 : [mq]: gcinterface.patch

*** 388,407 **** // of the page below heap depending on compressed oops mode. continue; } #ifdef ASSERT if ((((uintptr_t)loc & (sizeof(*loc)-1)) != 0) || ! !Universe::heap()->is_in_or_null(*loc)) { tty->print_cr("# Found non oop pointer. Dumping state at failure"); // try to dump out some helpful debugging information trace_codeblob_maps(fr, reg_map); omv.print(); tty->print_cr("register r"); omv.reg()->print(); tty->print_cr("loc = %p *loc = %p\n", loc, (address)*loc); // do the real assert. ! assert(Universe::heap()->is_in_or_null(*loc), "found non oop pointer"); } #endif // ASSERT oop_fn->do_oop(loc); } else if ( omv.type() == OopMapValue::narrowoop_value ) { narrowOop *nl = (narrowOop*)loc; --- 388,407 ---- // of the page below heap depending on compressed oops mode. continue; } #ifdef ASSERT if ((((uintptr_t)loc & (sizeof(*loc)-1)) != 0) || ! !GC::gc()->heap()->is_in_or_null(*loc)) { tty->print_cr("# Found non oop pointer. Dumping state at failure"); // try to dump out some helpful debugging information trace_codeblob_maps(fr, reg_map); omv.print(); tty->print_cr("register r"); omv.reg()->print(); tty->print_cr("loc = %p *loc = %p\n", loc, (address)*loc); // do the real assert. ! assert(GC::gc()->heap()->is_in_or_null(*loc), "found non oop pointer"); } #endif // ASSERT oop_fn->do_oop(loc); } else if ( omv.type() == OopMapValue::narrowoop_value ) { narrowOop *nl = (narrowOop*)loc;
*** 769,779 **** // Returns value of location as an int intptr_t value_of_loc(oop *pointer) { return cast_from_oop<intptr_t>((*pointer)); } void DerivedPointerTable::add(oop *derived_loc, oop *base_loc) { ! assert(Universe::heap()->is_in_or_null(*base_loc), "not an oop"); assert(derived_loc != base_loc, "Base and derived in same location"); if (_active) { assert(*derived_loc != (oop)base_loc, "location already added"); assert(_list != NULL, "list must exist"); intptr_t offset = value_of_loc(derived_loc) - value_of_loc(base_loc); --- 769,779 ---- // Returns value of location as an int intptr_t value_of_loc(oop *pointer) { return cast_from_oop<intptr_t>((*pointer)); } void DerivedPointerTable::add(oop *derived_loc, oop *base_loc) { ! assert(GC::gc()->heap()->is_in_or_null(*base_loc), "not an oop"); assert(derived_loc != base_loc, "Base and derived in same location"); if (_active) { assert(*derived_loc != (oop)base_loc, "location already added"); assert(_list != NULL, "list must exist"); intptr_t offset = value_of_loc(derived_loc) - value_of_loc(base_loc);
*** 804,814 **** DerivedPointerEntry* entry = _list->at(i); oop* derived_loc = entry->location(); intptr_t offset = entry->offset(); // The derived oop was setup to point to location of base oop base = **(oop**)derived_loc; ! assert(Universe::heap()->is_in_or_null(base), "must be an oop"); *derived_loc = (oop)(((address)base) + offset); assert(value_of_loc(derived_loc) - value_of_loc(&base) == offset, "sanity check"); if (TraceDerivedPointers) { --- 804,814 ---- DerivedPointerEntry* entry = _list->at(i); oop* derived_loc = entry->location(); intptr_t offset = entry->offset(); // The derived oop was setup to point to location of base oop base = **(oop**)derived_loc; ! assert(GC::gc()->heap()->is_in_or_null(base), "must be an oop"); *derived_loc = (oop)(((address)base) + offset); assert(value_of_loc(derived_loc) - value_of_loc(&base) == offset, "sanity check"); if (TraceDerivedPointers) {
< prev index next >