< prev index next >

src/hotspot/share/code/codeBlob.hpp

Print this page

157   };
158 
159   static const Vptr* vptr(CodeBlobKind kind);
160   const Vptr* vptr() const;
161 
162   CodeBlob(const char* name, CodeBlobKind kind, CodeBuffer* cb, int size, uint16_t header_size,
163            int16_t frame_complete_offset, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments,
164            int mutable_data_size);
165 
166   // Simple CodeBlob used for simple BufferBlob.
167   CodeBlob(const char* name, CodeBlobKind kind, int size, uint16_t header_size);
168 
169 
170   void operator delete(void* p) { }
171 
172   void prepare_for_archiving_impl();
173   void post_restore_impl();
174 
175 public:
176 
177   ~CodeBlob() {
178     assert(_oop_maps == nullptr, "Not flushed");
179   }
180 
181   // Returns the space needed for CodeBlob
182   static unsigned int allocation_size(CodeBuffer* cb, int header_size);
183   static unsigned int align_code_offset(int offset);
184 
185   // Deletion
186   void purge();
187 
188   // Typing
189   bool is_nmethod() const                     { return _kind == CodeBlobKind::Nmethod; }
190   bool is_buffer_blob() const                 { return _kind == CodeBlobKind::Buffer; }
191   bool is_runtime_stub() const                { return _kind == CodeBlobKind::RuntimeStub; }
192   bool is_deoptimization_stub() const         { return _kind == CodeBlobKind::Deoptimization; }
193 #ifdef COMPILER2
194   bool is_uncommon_trap_stub() const          { return _kind == CodeBlobKind::UncommonTrap; }
195   bool is_exception_stub() const              { return _kind == CodeBlobKind::Exception; }
196 #else
197   bool is_uncommon_trap_stub() const          { return false; }
198   bool is_exception_stub() const              { return false; }
199 #endif

157   };
158 
159   static const Vptr* vptr(CodeBlobKind kind);
160   const Vptr* vptr() const;
161 
162   CodeBlob(const char* name, CodeBlobKind kind, CodeBuffer* cb, int size, uint16_t header_size,
163            int16_t frame_complete_offset, int frame_size, OopMapSet* oop_maps, bool caller_must_gc_arguments,
164            int mutable_data_size);
165 
166   // Simple CodeBlob used for simple BufferBlob.
167   CodeBlob(const char* name, CodeBlobKind kind, int size, uint16_t header_size);
168 
169 
170   void operator delete(void* p) { }
171 
172   void prepare_for_archiving_impl();
173   void post_restore_impl();
174 
175 public:
176 
177   ~CodeBlob() NOT_DEBUG_RETURN;


178 
179   // Returns the space needed for CodeBlob
180   static unsigned int allocation_size(CodeBuffer* cb, int header_size);
181   static unsigned int align_code_offset(int offset);
182 
183   // Deletion
184   void purge();
185 
186   // Typing
187   bool is_nmethod() const                     { return _kind == CodeBlobKind::Nmethod; }
188   bool is_buffer_blob() const                 { return _kind == CodeBlobKind::Buffer; }
189   bool is_runtime_stub() const                { return _kind == CodeBlobKind::RuntimeStub; }
190   bool is_deoptimization_stub() const         { return _kind == CodeBlobKind::Deoptimization; }
191 #ifdef COMPILER2
192   bool is_uncommon_trap_stub() const          { return _kind == CodeBlobKind::UncommonTrap; }
193   bool is_exception_stub() const              { return _kind == CodeBlobKind::Exception; }
194 #else
195   bool is_uncommon_trap_stub() const          { return false; }
196   bool is_exception_stub() const              { return false; }
197 #endif
< prev index next >