equal
deleted
inserted
replaced
1 /* |
1 /* |
2 * Copyright 1997-2006 Sun Microsystems, Inc. All Rights Reserved. |
2 * Copyright 1997-2009 Sun Microsystems, Inc. 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. |
37 PcDesc* pc_desc = code->pc_desc_at(pc); |
37 PcDesc* pc_desc = code->pc_desc_at(pc); |
38 assert(pc_desc != NULL, "Must be able to find matching PcDesc"); |
38 assert(pc_desc != NULL, "Must be able to find matching PcDesc"); |
39 DebugInfoReadStream buffer(code, pc_desc->scope_decode_offset()); |
39 DebugInfoReadStream buffer(code, pc_desc->scope_decode_offset()); |
40 int ignore_sender = buffer.read_int(); |
40 int ignore_sender = buffer.read_int(); |
41 _method = methodOop(buffer.read_oop()); |
41 _method = methodOop(buffer.read_oop()); |
42 bool dummy_reexecute; //only methodOop and bci are needed! |
42 _bci = buffer.read_bci(); |
43 _bci = buffer.read_bci_and_reexecute(dummy_reexecute); |
|
44 } |
43 } |
45 |
44 |
46 methodOop method() { return _method; } |
45 methodOop method() { return _method; } |
47 int bci() { return _bci; } |
46 int bci() { return _bci; } |
48 }; |
47 }; |
51 // nmethods possible; each scopeDesc describes a method activation |
50 // nmethods possible; each scopeDesc describes a method activation |
52 |
51 |
53 class ScopeDesc : public ResourceObj { |
52 class ScopeDesc : public ResourceObj { |
54 public: |
53 public: |
55 // Constructor |
54 // Constructor |
56 ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset); |
55 ScopeDesc(const nmethod* code, int decode_offset, int obj_decode_offset, bool reexecute); |
57 |
56 |
58 // Calls above, giving default value of "serialized_null" to the |
57 // Calls above, giving default value of "serialized_null" to the |
59 // "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 |
60 // avoid a .hpp-.hpp dependency.) |
59 // avoid a .hpp-.hpp dependency.) |
61 ScopeDesc(const nmethod* code, int decode_offset); |
60 ScopeDesc(const nmethod* code, int decode_offset, bool reexecute); |
62 |
61 |
63 // JVM state |
62 // JVM state |
64 methodHandle method() const { return _method; } |
63 methodHandle method() const { return _method; } |
65 int bci() const { return _bci; } |
64 int bci() const { return _bci; } |
66 bool should_reexecute() const { return _reexecute; } |
65 bool should_reexecute() const { return _reexecute; } |