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(); |