< prev index next > src/hotspot/share/code/codeBlob.cpp
Print this page
assert(_mutable_data != nullptr, "should never be null");
if (_mutable_data != blob_end()) {
os::free(_mutable_data);
_mutable_data = blob_end(); // Valid not null address
}
! if (_oop_maps != nullptr) {
delete _oop_maps;
_oop_maps = nullptr;
}
NOT_PRODUCT(_asm_remarks.clear());
NOT_PRODUCT(_dbg_strings.clear());
assert(_mutable_data != nullptr, "should never be null");
if (_mutable_data != blob_end()) {
os::free(_mutable_data);
_mutable_data = blob_end(); // Valid not null address
}
! if (_oop_maps != nullptr && !AOTCodeCache::is_address_in_aot_cache((address)_oop_maps)) {
delete _oop_maps;
_oop_maps = nullptr;
}
NOT_PRODUCT(_asm_remarks.clear());
NOT_PRODUCT(_dbg_strings.clear());
CodeBlob* CodeBlob::create(CodeBlob* archived_blob,
const char* name,
address archived_reloc_data,
ImmutableOopMapSet* archived_oop_maps
- #ifndef PRODUCT
- , AsmRemarks& archived_asm_remarks
- , DbgStrings& archived_dbg_strings
- #endif // PRODUCT
)
{
ThreadInVMfromUnknown __tiv; // get to VM state in case we block on CodeCache_lock
CodeCache::gc_on_allocation();
if (code_cache_buffer != nullptr) {
blob = archived_blob->restore(code_cache_buffer,
name,
archived_reloc_data,
archived_oop_maps);
- #ifndef PRODUCT
- blob->use_remarks(archived_asm_remarks);
- archived_asm_remarks.clear();
- blob->use_strings(archived_dbg_strings);
- archived_dbg_strings.clear();
- #endif // PRODUCT
assert(blob != nullptr, "sanity check");
// Flush the code block
ICache::invalidate_range(blob->code_begin(), blob->code_size());
CodeCache::commit(blob); // Count adapters
< prev index next >