mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-16 09:04:41 +02:00
6990754: Use native memory and reference counting to implement SymbolTable
Move symbols from permgen into C heap and reference count them Reviewed-by: never, acorn, jmasa, stefank
This commit is contained in:
parent
950858350d
commit
7b4f8073f0
223 changed files with 3783 additions and 3641 deletions
|
@ -35,6 +35,10 @@
|
|||
#include "oops/oop.inline2.hpp"
|
||||
#include "runtime/atomic.hpp"
|
||||
|
||||
void Klass::set_name(Symbol* n) {
|
||||
_name = n;
|
||||
if (_name != NULL) _name->increment_refcount();
|
||||
}
|
||||
|
||||
bool Klass::is_subclass_of(klassOop k) const {
|
||||
// Run up the super chain and check
|
||||
|
@ -115,7 +119,7 @@ bool Klass::compute_is_subtype_of(klassOop k) {
|
|||
}
|
||||
|
||||
|
||||
methodOop Klass::uncached_lookup_method(symbolOop name, symbolOop signature) const {
|
||||
methodOop Klass::uncached_lookup_method(Symbol* name, Symbol* signature) const {
|
||||
#ifdef ASSERT
|
||||
tty->print_cr("Error: uncached_lookup_method called on a klass oop."
|
||||
" Likely error: reflection method does not correctly"
|
||||
|
@ -454,6 +458,11 @@ void Klass::remove_unshareable_info() {
|
|||
}
|
||||
|
||||
|
||||
void Klass::shared_symbols_iterate(SymbolClosure* closure) {
|
||||
closure->do_symbol(&_name);
|
||||
}
|
||||
|
||||
|
||||
klassOop Klass::array_klass_or_null(int rank) {
|
||||
EXCEPTION_MARK;
|
||||
// No exception can be thrown by array_klass_impl when called with or_null == true.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue