< prev index next >

src/hotspot/share/runtime/continuationHelper.hpp

Print this page
@@ -56,10 +56,11 @@
  
    // Concrete helpers for describing concrete types of frames
    class InterpretedFrame;
    class NonInterpretedUnknownFrame;
    class CompiledFrame;
+   class NativeFrame;
    class StubFrame;
  };
  
  class ContinuationHelper::Frame : public AllStatic {
  public:

@@ -97,13 +98,11 @@
    static void patch_sender_sp(frame& f, const frame& caller);
  
    static int size(const frame& f);
    static inline int expression_stack_size(const frame &f, InterpreterOopMap* mask);
  
- #ifdef ASSERT
-   static bool is_owning_locks(const frame& f);
- #endif
+   static int monitors_to_fix(JavaThread* thread, const frame& f, ResourceHashtable<oopDesc*, bool> &table, stackChunkOop chunk) NOT_DEBUG_RETURN0;
  
    static bool is_instance(const frame& f);
  
    typedef InterpreterOopMap* ExtraT;
  };

@@ -125,19 +124,25 @@
  
  class ContinuationHelper::CompiledFrame : public ContinuationHelper::NonInterpretedFrame {
  public:
    static bool is_instance(const frame& f);
  
- #ifdef ASSERT
    template <typename RegisterMapT>
-   static bool is_owning_locks(JavaThread* thread, RegisterMapT* map, const frame& f);
- #endif
+   static int monitors_to_fix(JavaThread* thread, RegisterMapT* map, const frame& f, ResourceHashtable<oopDesc*, bool> &table) NOT_DEBUG_RETURN0;
+ };
+ 
+ class ContinuationHelper::NativeFrame : public ContinuationHelper::NonInterpretedFrame {
+ public:
+   static bool is_instance(const frame& f);
+ 
+   static int monitors_to_fix(JavaThread* thread, const frame& f, ResourceHashtable<oopDesc*, bool> &table) NOT_DEBUG_RETURN0;
  };
  
  class ContinuationHelper::StubFrame : public ContinuationHelper::NonInterpretedFrame {
  public:
    static const bool stub = true;
  
    static bool is_instance(const frame& f);
+   static int stack_argsize(const frame& f) { return 0; }
  };
  
  #endif // SHARE_VM_RUNTIME_CONTINUATIONHELPER_HPP
< prev index next >