mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 11:34:38 +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
|
@ -107,15 +107,23 @@ void CompactingPermGenGen::initialize_oops() {
|
|||
// Skip over (reserve space for) a list of addresses of C++ vtables
|
||||
// for Klass objects. They get filled in later.
|
||||
|
||||
void** vtbl_list = (void**)buffer;
|
||||
buffer += vtbl_list_size * sizeof(void*);
|
||||
Universe::init_self_patching_vtbl_list(vtbl_list, vtbl_list_size);
|
||||
|
||||
// Skip over (reserve space for) dummy C++ vtables Klass objects.
|
||||
// They are used as is.
|
||||
|
||||
void** vtbl_list = (void**)buffer;
|
||||
buffer += vtbl_list_size * sizeof(void*);
|
||||
intptr_t vtable_size = *(intptr_t*)buffer;
|
||||
buffer += sizeof(intptr_t);
|
||||
buffer += vtable_size;
|
||||
|
||||
// Skip the recorded symbols.
|
||||
|
||||
intptr_t total_symbol_size = *(intptr_t*)buffer;
|
||||
buffer += sizeof(intptr_t) * 2;
|
||||
buffer += total_symbol_size;
|
||||
|
||||
// Create the symbol table using the bucket array at this spot in the
|
||||
// misc data space. Since the symbol table is often modified, this
|
||||
// region (of mapped pages) will be copy-on-write.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue