1 /* |
1 /* |
2 * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
28 #include "runtime/vframe.hpp" |
28 #include "runtime/vframe.hpp" |
29 |
29 |
30 class compiledVFrame: public javaVFrame { |
30 class compiledVFrame: public javaVFrame { |
31 public: |
31 public: |
32 // JVM state |
32 // JVM state |
33 methodOop method() const; |
33 Method* method() const; |
34 int bci() const; |
34 int bci() const; |
35 bool should_reexecute() const; |
35 bool should_reexecute() const; |
36 StackValueCollection* locals() const; |
36 StackValueCollection* locals() const; |
37 StackValueCollection* expressions() const; |
37 StackValueCollection* expressions() const; |
38 GrowableArray<MonitorInfo*>* monitors() const; |
38 GrowableArray<MonitorInfo*>* monitors() const; |
90 |
90 |
91 class jvmtiDeferredLocalVariable; |
91 class jvmtiDeferredLocalVariable; |
92 class jvmtiDeferredLocalVariableSet : public CHeapObj<mtCompiler> { |
92 class jvmtiDeferredLocalVariableSet : public CHeapObj<mtCompiler> { |
93 private: |
93 private: |
94 |
94 |
95 methodOop _method; // must be GC'd |
95 Method* _method; |
96 int _bci; |
96 int _bci; |
97 intptr_t* _id; |
97 intptr_t* _id; |
98 GrowableArray<jvmtiDeferredLocalVariable*>* _locals; |
98 GrowableArray<jvmtiDeferredLocalVariable*>* _locals; |
99 |
99 |
100 public: |
100 public: |
101 // JVM state |
101 // JVM state |
102 methodOop method() const { return _method; } |
102 Method* method() const { return _method; } |
103 int bci() const { return _bci; } |
103 int bci() const { return _bci; } |
104 intptr_t* id() const { return _id; } |
104 intptr_t* id() const { return _id; } |
105 GrowableArray<jvmtiDeferredLocalVariable*>* locals() const { return _locals; } |
105 GrowableArray<jvmtiDeferredLocalVariable*>* locals() const { return _locals; } |
106 void set_local_at(int idx, BasicType typ, jvalue val); |
106 void set_local_at(int idx, BasicType typ, jvalue val); |
107 |
107 |
109 bool matches(vframe* vf); |
109 bool matches(vframe* vf); |
110 // GC |
110 // GC |
111 void oops_do(OopClosure* f); |
111 void oops_do(OopClosure* f); |
112 |
112 |
113 // constructor |
113 // constructor |
114 jvmtiDeferredLocalVariableSet(methodOop method, int bci, intptr_t* id); |
114 jvmtiDeferredLocalVariableSet(Method* method, int bci, intptr_t* id); |
115 |
115 |
116 // destructor |
116 // destructor |
117 ~jvmtiDeferredLocalVariableSet(); |
117 ~jvmtiDeferredLocalVariableSet(); |
118 |
118 |
119 |
119 |