< prev index next >

src/hotspot/share/code/stubs.hpp

Print this page
rev 47398 : 8166317: InterpreterCodeSize should be computed
Reviewed-by: kvn, coleenp

*** 199,214 **** // Stub deallocation void remove_first(); // remove the first stub in the queue void remove_first(int n); // remove the first n stubs in the queue void remove_all(); // remove all stubs in the queue // Iteration static void queues_do(void f(StubQueue* s)); // call f with each StubQueue void stubs_do(void f(Stub* s)); // call f with all stubs Stub* first() const { return number_of_stubs() > 0 ? stub_at(_queue_begin) : NULL; } Stub* next(Stub* s) const { int i = index_of(s) + stub_size(s); ! if (i == _buffer_limit) i = 0; return (i == _queue_end) ? NULL : stub_at(i); } address stub_code_begin(Stub* s) const { return _stub_interface->code_begin(s); } address stub_code_end(Stub* s) const { return _stub_interface->code_end(s); } --- 199,217 ---- // Stub deallocation void remove_first(); // remove the first stub in the queue void remove_first(int n); // remove the first n stubs in the queue void remove_all(); // remove all stubs in the queue + void deallocate_unused_tail(); // deallocate the unused tail of the underlying CodeBlob + // only used from TemplateInterpreter::initialize() // Iteration static void queues_do(void f(StubQueue* s)); // call f with each StubQueue void stubs_do(void f(Stub* s)); // call f with all stubs Stub* first() const { return number_of_stubs() > 0 ? stub_at(_queue_begin) : NULL; } Stub* next(Stub* s) const { int i = index_of(s) + stub_size(s); ! // Only wrap around in the non-contiguous case (see stubss.cpp) ! if (i == _buffer_limit && _queue_end < _buffer_limit) i = 0; return (i == _queue_end) ? NULL : stub_at(i); } address stub_code_begin(Stub* s) const { return _stub_interface->code_begin(s); } address stub_code_end(Stub* s) const { return _stub_interface->code_end(s); }
< prev index next >