src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File
*** old/src/share/vm/code/nmethod.cpp	Fri Nov  8 14:10:12 2013
--- new/src/share/vm/code/nmethod.cpp	Fri Nov  8 14:10:12 2013

*** 1260,1270 **** --- 1260,1270 ---- // The Method* is gone at this point assert(_method == NULL, "Tautology"); set_osr_link(NULL); //set_scavenge_root_link(NULL); // done by prune_scavenge_root_nmethods ! NMethodSweeper::notify(); ! NMethodSweeper::report_state_change(this); } void nmethod::invalidate_osr_method() { assert(_entry_bci != InvocationEntryBci, "wrong kind of nmethod"); // Remove from list of active nmethods
*** 1294,1304 **** --- 1294,1306 ---- if (PrintCompilation && _state != unloaded) { print_on(tty, _state == zombie ? "made zombie" : "made not entrant"); } } // Common functionality for both make_not_entrant and make_zombie + /** + * Common functionality for both make_not_entrant and make_zombie + */ bool nmethod::make_not_entrant_or_zombie(unsigned int state) { assert(state == zombie || state == not_entrant, "must be zombie or not_entrant"); assert(!is_zombie(), "should not already be a zombie"); // Make sure neither the nmethod nor the method is flushed in case of a safepoint in code below.
*** 1418,1430 **** --- 1420,1430 ---- if (TraceCreateZombies) { tty->print_cr("nmethod <" INTPTR_FORMAT "> code made %s", this, (state == not_entrant) ? "not entrant" : "zombie"); } // Make sweeper aware that there is a zombie method that needs to be removed NMethodSweeper::notify(); + NMethodSweeper::report_state_change(this); return true; } void nmethod::flush() { // Note that there are no valid oops in the nmethod anymore.

src/share/vm/code/nmethod.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File