< prev index next >

src/share/vm/oops/constantPool.cpp

Print this page

        

*** 263,273 **** for (int i = 0; i < rr->length(); i++) { oop p = rr->obj_at(i); if (p != NULL) { int index = object_to_cp_index(i); if (tag_at(index).is_string()) { ! oop op = StringTable::archive_string(p, THREAD); // If the String object is not archived (possibly too large), // NULL is returned. Also set it in the array, so we won't // have a 'bad' reference in the archived resolved_reference // array. rr->obj_at_put(i, op); --- 263,273 ---- for (int i = 0; i < rr->length(); i++) { oop p = rr->obj_at(i); if (p != NULL) { int index = object_to_cp_index(i); if (tag_at(index).is_string()) { ! oop op = StringTable::create_archived_string(p, THREAD); // If the String object is not archived (possibly too large), // NULL is returned. Also set it in the array, so we won't // have a 'bad' reference in the archived resolved_reference // array. rr->obj_at_put(i, op);
*** 335,345 **** resolved_references() != NULL ? resolved_references()->length() : 0); // If archiving heap objects is not allowed, clear the resolved references. // Otherwise, it is cleared after the resolved references array is cached // (see archive_resolved_references()). ! if (!MetaspaceShared::allow_archive_heap_object()) { set_resolved_references(NULL); } // Shared ConstantPools are in the RO region, so the _flags cannot be modified. // The _on_stack flag is used to prevent ConstantPools from deallocation during --- 335,345 ---- resolved_references() != NULL ? resolved_references()->length() : 0); // If archiving heap objects is not allowed, clear the resolved references. // Otherwise, it is cleared after the resolved references array is cached // (see archive_resolved_references()). ! if (!MetaspaceShared::is_heap_object_archiving_allowed()) { set_resolved_references(NULL); } // Shared ConstantPools are in the RO region, so the _flags cannot be modified. // The _on_stack flag is used to prevent ConstantPools from deallocation during
< prev index next >