< prev index next >

src/share/vm/runtime/stubCodeGenerator.cpp

Print this page
rev 8555 : 8206406: StubCodeDesc constructor publishes partially-constructed objects on StubCodeDesc::_list
Reviewed-by: dholmes

*** 32,55 **** #include "runtime/stubCodeGenerator.hpp" // Implementation of StubCodeDesc ! StubCodeDesc* StubCodeDesc::_list = NULL; int StubCodeDesc::_count = 0; StubCodeDesc* StubCodeDesc::desc_for(address pc) { ! StubCodeDesc* p = _list; while (p != NULL && !p->contains(pc)) p = p->_next; // p == NULL || p->contains(pc) return p; } StubCodeDesc* StubCodeDesc::desc_for_index(int index) { ! StubCodeDesc* p = _list; while (p != NULL && p->index() != index) p = p->_next; return p; } --- 32,55 ---- #include "runtime/stubCodeGenerator.hpp" // Implementation of StubCodeDesc ! StubCodeDesc* volatile StubCodeDesc::_list = NULL; int StubCodeDesc::_count = 0; StubCodeDesc* StubCodeDesc::desc_for(address pc) { ! StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list); while (p != NULL && !p->contains(pc)) p = p->_next; // p == NULL || p->contains(pc) return p; } StubCodeDesc* StubCodeDesc::desc_for_index(int index) { ! StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list); while (p != NULL && p->index() != index) p = p->_next; return p; }
< prev index next >