< 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 >