8195097: Make it possible to process StringTable outside safepoint

Reviewed-by: coleenp, gziemski, iklam, jiangli
This commit is contained in:
Robbin Ehn 2018-06-07 14:11:56 +02:00
parent 91f473f2ae
commit 66f8951e15
31 changed files with 917 additions and 848 deletions

View file

@ -24,6 +24,7 @@
#include "precompiled.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/stringTable.hpp"
#include "gc/shared/oopStorage.hpp"
#include "oops/access.inline.hpp"
#include "oops/oop.hpp"
@ -35,6 +36,10 @@ template <> OopStorage* WeakHandle<vm_class_loader_data>::get_storage() {
return SystemDictionary::vm_weak_oop_storage();
}
template <> OopStorage* WeakHandle<vm_string_table_data>::get_storage() {
return StringTable::weak_storage();
}
template <WeakHandleType T>
WeakHandle<T> WeakHandle<T>::create(Handle obj) {
assert(obj() != NULL, "no need to create weak null oop");
@ -68,4 +73,5 @@ void WeakHandle<T>::print_on(outputStream* st) const {
// Provide instantiation.
template class WeakHandle<vm_class_loader_data>;
template class WeakHandle<vm_string_table_data>;