< prev index next >

src/hotspot/share/code/codeBlob.hpp

Print this page
*** 24,10 ***
--- 24,11 ---
  
  #ifndef SHARE_CODE_CODEBLOB_HPP
  #define SHARE_CODE_CODEBLOB_HPP
  
  #include "asm/codeBuffer.hpp"
+ #include "code/aotCodeCache.hpp"
  #include "compiler/compilerDefinitions.hpp"
  #include "compiler/oopMap.hpp"
  #include "runtime/javaFrameAnchor.hpp"
  #include "runtime/frame.hpp"
  #include "runtime/handles.hpp"

*** 170,11 ***
    void post_restore_impl();
  
  public:
  
    ~CodeBlob() {
!     assert(_oop_maps == nullptr, "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);
--- 171,11 ---
    void post_restore_impl();
  
  public:
  
    ~CodeBlob() {
!     assert(_oop_maps == nullptr || AOTCodeCache::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);

*** 203,10 ***
--- 204,11 ---
    // Casting
    nmethod* as_nmethod_or_null() const         { return is_nmethod() ? (nmethod*) this : nullptr; }
    nmethod* as_nmethod() const                 { assert(is_nmethod(), "must be nmethod"); return (nmethod*) this; }
    CodeBlob* as_codeblob() const               { return (CodeBlob*) this; }
    AdapterBlob* as_adapter_blob() const        { assert(is_adapter_blob(), "must be adapter blob"); return (AdapterBlob*) this; }
+   ExceptionBlob* as_exception_blob() const    { assert(is_exception_stub(), "must be exception stub"); return (ExceptionBlob*) this; }
    UpcallStub* as_upcall_stub() const          { assert(is_upcall_stub(), "must be upcall stub"); return (UpcallStub*) this; }
    RuntimeStub* as_runtime_stub() const        { assert(is_runtime_stub(), "must be runtime blob"); return (RuntimeStub*) this; }
  
    // Boundaries
    address    header_begin() const             { return (address)    this; }
< prev index next >