comparison src/share/vm/oops/klass.cpp @ 3245:8ce625481709

7032407: Crash in LinkResolver::runtime_resolve_virtual_method() Summary: Make CDS reorder vtables so that dump time vtables match run time order, so when redefine classes reinitializes them, they aren't in the wrong order. Reviewed-by: dcubed, acorn
author coleenp
date Fri, 15 Apr 2011 09:36:28 -0400
parents 1d1603768966
children be4ca325525a 069ab3f976d3 94ec88ca68e2
comparison
equal deleted inserted replaced
3244:a534c140904e 3245:8ce625481709
451 instanceKlass* ik = (instanceKlass*)this; 451 instanceKlass* ik = (instanceKlass*)this;
452 if (ik->is_linked()) { 452 if (ik->is_linked()) {
453 ik->unlink_class(); 453 ik->unlink_class();
454 } 454 }
455 } 455 }
456 // Clear the Java vtable if the oop has one.
457 // The vtable isn't shareable because it's in the wrong order wrt the methods
458 // once the method names get moved and resorted.
459 klassVtable* vt = vtable();
460 if (vt != NULL) {
461 assert(oop_is_instance() || oop_is_array(), "nothing else has vtable");
462 vt->clear_vtable();
463 }
456 set_subklass(NULL); 464 set_subklass(NULL);
457 set_next_sibling(NULL); 465 set_next_sibling(NULL);
458 } 466 }
459 467
460 468