< 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/SCCache.hpp"
  #include "compiler/compilerDefinitions.hpp"
  #include "compiler/oopMap.hpp"
  #include "runtime/javaFrameAnchor.hpp"
  #include "runtime/frame.hpp"
  #include "runtime/handles.hpp"

@@ -154,11 +155,11 @@
    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);

@@ -242,10 +243,11 @@
    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.

@@ -276,10 +278,12 @@
    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 >