src/hotspot/share/code/codeBlob.hpp

Print this page

        

@@ -130,10 +130,11 @@
   virtual bool is_deoptimization_stub() const         { return false; }
   virtual bool is_uncommon_trap_stub() const          { return false; }
   virtual bool is_exception_stub() const              { return false; }
   virtual bool is_safepoint_stub() const              { return false; }
   virtual bool is_adapter_blob() const                { return false; }
+  virtual bool is_vtable_blob() const                 { return false; }
   virtual bool is_method_handles_adapter_blob() const { return false; }
   virtual bool is_aot() const                         { return false; }
   virtual bool is_compiled() const                    { return false; }
 
   inline bool is_compiled_by_c1() const    { return _type == compiler_c1; };

@@ -378,10 +379,11 @@
 // BufferBlob: used to hold non-relocatable machine code such as the interpreter, stubroutines, etc.
 
 class BufferBlob: public RuntimeBlob {
   friend class VMStructs;
   friend class AdapterBlob;
+  friend class VtableBlob;
   friend class MethodHandlesAdapterBlob;
   friend class WhiteBox;
 
  private:
   // Creation support

@@ -423,11 +425,23 @@
 
   // Typing
   virtual bool is_adapter_blob() const { return true; }
 };
 
+//---------------------------------------------------------------------------------------------------
+class VtableBlob: public BufferBlob {
+private:
+  VtableBlob(const char*, int);
 
+public:
+  // Creation
+  static VtableBlob* create(const char* name, int buffer_size);
+
+  // Typing
+  virtual bool is_vtable_blob() const { return true; }
+}; 
+
 //----------------------------------------------------------------------------------------------------
 // MethodHandlesAdapterBlob: used to hold MethodHandles adapters
 
 class MethodHandlesAdapterBlob: public BufferBlob {
 private: