< prev index next > src/hotspot/share/code/codeBlob.hpp
Print this page
#ifndef SHARE_CODE_CODEBLOB_HPP
#define SHARE_CODE_CODEBLOB_HPP
#include "asm/codeBuffer.hpp"
+ #include "code/SCCache.hpp"
#include "compiler/compilerDefinitions.hpp"
#include "compiler/oopMap.hpp"
#include "runtime/javaFrameAnchor.hpp"
#include "runtime/frame.hpp"
#include "runtime/handles.hpp"
void operator delete(void* p) { }
public:
~CodeBlob() {
- assert(_oop_maps == nullptr, "Not flushed");
+ assert(_oop_maps == nullptr || SCCache::is_address_in_aot_cache((address)_oop_maps), "Not flushed");
}
// Returns the space needed for CodeBlob
static unsigned int allocation_size(CodeBuffer* cb, int header_size);
static unsigned int align_code_offset(int offset);
int frame_complete_offset() const { return _frame_complete_offset; }
// OopMap for frame
ImmutableOopMapSet* oop_maps() const { return _oop_maps; }
void set_oop_maps(OopMapSet* p);
+ void set_oop_maps(ImmutableOopMapSet* p) { _oop_maps = p; }
const ImmutableOopMap* oop_map_for_slot(int slot, address return_address) const;
const ImmutableOopMap* oop_map_for_return_address(address return_address) const;
// Frame support. Sizes are in word units.
DbgStrings &dbg_strings() { return _dbg_strings; }
void use_remarks(AsmRemarks &remarks) { _asm_remarks.share(remarks); }
void use_strings(DbgStrings &strings) { _dbg_strings.share(strings); }
#endif
+
+ void prepare_for_archiving();
};
//----------------------------------------------------------------------------------------------------
// RuntimeBlob: used for non-compiled method code (adapters, stubs, blobs)
< prev index next >