src/share/vm/memory/restore.cpp

changeset 2497
3582bf76420e
parent 2314
f95d63e2154a
child 2708
1d1603768966
     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.

mercurial