< prev index next > src/hotspot/share/code/codeBlob.cpp
Print this page
return blob;
}
- BufferBlob::BufferBlob(const char* name, int size, CodeBuffer* cb)
- : RuntimeBlob(name, cb, sizeof(BufferBlob), size, CodeOffsets::frame_never_safe, 0, NULL)
+ BufferBlob::BufferBlob(const char* name, int header_size, int size, CodeBuffer* cb)
+ : RuntimeBlob(name, cb, header_size, size, CodeOffsets::frame_never_safe, 0, NULL)
{}
BufferBlob* BufferBlob::create(const char* name, CodeBuffer* cb) {
ThreadInVMfromUnknown __tiv; // get to VM state in case we block on CodeCache_lock
BufferBlob* blob = NULL;
unsigned int size = CodeBlob::allocation_size(cb, sizeof(BufferBlob));
assert(name != NULL, "must provide a name");
{
MutexLocker mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
- blob = new (size) BufferBlob(name, size, cb);
+ blob = new (size) BufferBlob(name, sizeof(BufferBlob), size, cb);
}
// Track memory usage statistic after releasing CodeCache_lock
MemoryService::track_code_cache_memory_usage();
return blob;
void BufferBlob::free(BufferBlob *blob) {
RuntimeBlob::free(blob);
}
+ BufferBlob::BufferBlob(const char* name, int size, CodeBuffer* cb, int frame_complete, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments)
+ : RuntimeBlob(name, cb, sizeof(BufferBlob), size, frame_complete, frame_size, oop_maps, caller_must_gc_arguments)
+ {}
+
//----------------------------------------------------------------------------------------------------
// Implementation of AdapterBlob
- AdapterBlob::AdapterBlob(int size, CodeBuffer* cb) :
- BufferBlob("I2C/C2I adapters", size, cb) {
+ AdapterBlob::AdapterBlob(int size, CodeBuffer* cb, int frame_complete, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments) :
+ BufferBlob("I2C/C2I adapters", size, cb, frame_complete, frame_size, oop_maps, caller_must_gc_arguments) {
CodeCache::commit(this);
}
- AdapterBlob* AdapterBlob::create(CodeBuffer* cb) {
+ AdapterBlob* AdapterBlob::create(CodeBuffer* cb, int frame_complete, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments) {
ThreadInVMfromUnknown __tiv; // get to VM state in case we block on CodeCache_lock
CodeCache::gc_on_allocation();
AdapterBlob* blob = NULL;
unsigned int size = CodeBlob::allocation_size(cb, sizeof(AdapterBlob));
{
MutexLocker mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
- blob = new (size) AdapterBlob(size, cb);
+ blob = new (size) AdapterBlob(size, cb, frame_complete, frame_size, oop_maps, caller_must_gc_arguments);
}
// Track memory usage statistic after releasing CodeCache_lock
MemoryService::track_code_cache_memory_usage();
return blob;
MemoryService::track_code_cache_memory_usage();
return blob;
}
+ //----------------------------------------------------------------------------------------------------
+ // Implementation of BufferedInlineTypeBlob
+ BufferedInlineTypeBlob::BufferedInlineTypeBlob(int size, CodeBuffer* cb, int pack_fields_off, int pack_fields_jobject_off, int unpack_fields_off) :
+ BufferBlob("buffered inline type", sizeof(BufferedInlineTypeBlob), size, cb),
+ _pack_fields_off(pack_fields_off),
+ _pack_fields_jobject_off(pack_fields_jobject_off),
+ _unpack_fields_off(unpack_fields_off) {
+ CodeCache::commit(this);
+ }
+
+ BufferedInlineTypeBlob* BufferedInlineTypeBlob::create(CodeBuffer* cb, int pack_fields_off, int pack_fields_jobject_off, int unpack_fields_off) {
+ ThreadInVMfromUnknown __tiv; // get to VM state in case we block on CodeCache_lock
+
+ BufferedInlineTypeBlob* blob = NULL;
+ unsigned int size = CodeBlob::allocation_size(cb, sizeof(BufferedInlineTypeBlob));
+ {
+ MutexLocker mu(CodeCache_lock, Mutex::_no_safepoint_check_flag);
+ blob = new (size) BufferedInlineTypeBlob(size, cb, pack_fields_off, pack_fields_jobject_off, unpack_fields_off);
+ }
+ // Track memory usage statistic after releasing CodeCache_lock
+ MemoryService::track_code_cache_memory_usage();
+
+ return blob;
+ }
+
//----------------------------------------------------------------------------------------------------
// Implementation of RuntimeStub
RuntimeStub::RuntimeStub(
const char* name,
< prev index next >