1 /* |
1 /* |
2 * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1998, 2014, 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. |
100 // _indices = invoke code for f1 (b1 section), invoke code for f2 (b2 section), |
100 // _indices = invoke code for f1 (b1 section), invoke code for f2 (b2 section), |
101 // original constant pool index |
101 // original constant pool index |
102 // _f1 = Method* for non-virtual calls, unused by virtual calls. |
102 // _f1 = Method* for non-virtual calls, unused by virtual calls. |
103 // for interface calls, which are essentially virtual but need a klass, |
103 // for interface calls, which are essentially virtual but need a klass, |
104 // contains Klass* for the corresponding interface. |
104 // contains Klass* for the corresponding interface. |
105 // for invokedynamic, f1 contains a site-specific CallSite object (as an appendix) |
105 // for invokedynamic and invokehandle, f1 contains the adapter method which |
106 // for invokehandle, f1 contains a site-specific MethodType object (as an appendix) |
106 // manages the actual call. The appendix is stored in the ConstantPool |
|
107 // resolved_references array. |
107 // (upcoming metadata changes will move the appendix to a separate array) |
108 // (upcoming metadata changes will move the appendix to a separate array) |
108 // _f2 = vtable/itable index (or final Method*) for virtual calls only, |
109 // _f2 = vtable/itable index (or final Method*) for virtual calls only, |
109 // unused by non-virtual. The is_vfinal flag indicates this is a |
110 // unused by non-virtual. The is_vfinal flag indicates this is a |
110 // method pointer for a final method, not an index. |
111 // method pointer for a final method, not an index. |
111 // _flags = method type info (t section), |
112 // _flags = method type info (t section), |