1.1 --- a/src/share/vm/memory/restore.cpp Thu Jan 27 13:42:28 2011 -0800 1.2 +++ b/src/share/vm/memory/restore.cpp Thu Jan 27 16:11:27 2011 -0800 1.3 @@ -107,15 +107,23 @@ 1.4 // Skip over (reserve space for) a list of addresses of C++ vtables 1.5 // for Klass objects. They get filled in later. 1.6 1.7 + void** vtbl_list = (void**)buffer; 1.8 + buffer += vtbl_list_size * sizeof(void*); 1.9 + Universe::init_self_patching_vtbl_list(vtbl_list, vtbl_list_size); 1.10 + 1.11 // Skip over (reserve space for) dummy C++ vtables Klass objects. 1.12 // They are used as is. 1.13 1.14 - void** vtbl_list = (void**)buffer; 1.15 - buffer += vtbl_list_size * sizeof(void*); 1.16 intptr_t vtable_size = *(intptr_t*)buffer; 1.17 buffer += sizeof(intptr_t); 1.18 buffer += vtable_size; 1.19 1.20 + // Skip the recorded symbols. 1.21 + 1.22 + intptr_t total_symbol_size = *(intptr_t*)buffer; 1.23 + buffer += sizeof(intptr_t) * 2; 1.24 + buffer += total_symbol_size; 1.25 + 1.26 // Create the symbol table using the bucket array at this spot in the 1.27 // misc data space. Since the symbol table is often modified, this 1.28 // region (of mapped pages) will be copy-on-write.