hotspot/src/share/vm/code/scopeDesc.hpp
changeset 4894 8a76fd3d098d
parent 3686 69c1b5228547
child 5547 f4b087cbb361
equal deleted inserted replaced
4893:fedc27b54caa 4894:8a76fd3d098d
    50 // nmethods possible; each scopeDesc describes a method activation
    50 // nmethods possible; each scopeDesc describes a method activation
    51 
    51 
    52 class ScopeDesc : public ResourceObj {
    52 class ScopeDesc : public ResourceObj {
    53  public:
    53  public:
    54   // Constructor
    54   // Constructor
    55   ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute);
    55   ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute, bool return_oop);
    56 
    56 
    57   // Calls above, giving default value of "serialized_null" to the
    57   // Calls above, giving default value of "serialized_null" to the
    58   // "obj_decode_offset" argument.  (We don't use a default argument to
    58   // "obj_decode_offset" argument.  (We don't use a default argument to
    59   // avoid a .hpp-.hpp dependency.)
    59   // avoid a .hpp-.hpp dependency.)
    60   ScopeDesc(const nmethod* code, int decode_offset, bool reexecute);
    60   ScopeDesc(const nmethod* code, int decode_offset, bool reexecute, bool return_oop);
    61 
    61 
    62   // JVM state
    62   // JVM state
    63   methodHandle method()   const { return _method; }
    63   methodHandle method()   const { return _method; }
    64   int          bci()      const { return _bci;    }
    64   int          bci()      const { return _bci;    }
    65   bool should_reexecute() const { return _reexecute; }
    65   bool should_reexecute() const { return _reexecute; }
       
    66   bool return_oop()       const { return _return_oop; }
    66 
    67 
    67   GrowableArray<ScopeValue*>*   locals();
    68   GrowableArray<ScopeValue*>*   locals();
    68   GrowableArray<ScopeValue*>*   expressions();
    69   GrowableArray<ScopeValue*>*   expressions();
    69   GrowableArray<MonitorValue*>* monitors();
    70   GrowableArray<MonitorValue*>* monitors();
    70   GrowableArray<ScopeValue*>*   objects();
    71   GrowableArray<ScopeValue*>*   objects();
    86 
    87 
    87   // JVM state
    88   // JVM state
    88   methodHandle  _method;
    89   methodHandle  _method;
    89   int           _bci;
    90   int           _bci;
    90   bool          _reexecute;
    91   bool          _reexecute;
       
    92   bool          _return_oop;
    91 
    93 
    92   // Decoding offsets
    94   // Decoding offsets
    93   int _decode_offset;
    95   int _decode_offset;
    94   int _sender_decode_offset;
    96   int _sender_decode_offset;
    95   int _locals_decode_offset;
    97   int _locals_decode_offset;