229 * a method. 230 * 231 * @param opcode the opcode of the instruction for which the lookup is being performed or 232 * {@code -1}. If non-negative, then resolution checks specific to the bytecode it 233 * denotes are performed if the method is already resolved. Should any of these 234 * checks fail, 0 is returned. 235 * @return the resolved method entry, 0 otherwise 236 */ 237 native HotSpotResolvedJavaMethodImpl lookupMethodInPool(HotSpotConstantPool constantPool, int cpi, byte opcode); 238 239 /** 240 * Ensures that the type referenced by the specified {@code JVM_CONSTANT_InvokeDynamic} entry at 241 * index {@code cpi} in {@code constantPool} is loaded and initialized. 242 * 243 * The behavior of this method is undefined if {@code cpi} does not denote a 244 * {@code JVM_CONSTANT_InvokeDynamic} entry. 245 */ 246 native void resolveInvokeDynamicInPool(HotSpotConstantPool constantPool, int cpi); 247 248 /** 249 * Ensures that the type referenced by the entry for a <a 250 * href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.9">signature 251 * polymorphic</a> method at index {@code cpi} in {@code constantPool} is loaded and 252 * initialized. 253 * 254 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 255 * a signature polymorphic method. 256 */ 257 native void resolveInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi); 258 259 /** 260 * Gets the resolved type denoted by the entry at index {@code cpi} in {@code constantPool}. 261 * 262 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 263 * a class. 264 * 265 * @throws LinkageError if resolution failed 266 */ 267 native HotSpotResolvedObjectTypeImpl resolveTypeInPool(HotSpotConstantPool constantPool, int cpi) throws LinkageError; 268 269 /** 270 * Looks up and attempts to resolve the {@code JVM_CONSTANT_Field} entry at index {@code cpi} in | 229 * a method. 230 * 231 * @param opcode the opcode of the instruction for which the lookup is being performed or 232 * {@code -1}. If non-negative, then resolution checks specific to the bytecode it 233 * denotes are performed if the method is already resolved. Should any of these 234 * checks fail, 0 is returned. 235 * @return the resolved method entry, 0 otherwise 236 */ 237 native HotSpotResolvedJavaMethodImpl lookupMethodInPool(HotSpotConstantPool constantPool, int cpi, byte opcode); 238 239 /** 240 * Ensures that the type referenced by the specified {@code JVM_CONSTANT_InvokeDynamic} entry at 241 * index {@code cpi} in {@code constantPool} is loaded and initialized. 242 * 243 * The behavior of this method is undefined if {@code cpi} does not denote a 244 * {@code JVM_CONSTANT_InvokeDynamic} entry. 245 */ 246 native void resolveInvokeDynamicInPool(HotSpotConstantPool constantPool, int cpi); 247 248 /** 249 * Ensures that the type referenced by the entry for a 250 * <a href="https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.9">signature 251 * polymorphic</a> method at index {@code cpi} in {@code constantPool} is loaded and 252 * initialized. 253 * 254 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 255 * a signature polymorphic method. 256 */ 257 native void resolveInvokeHandleInPool(HotSpotConstantPool constantPool, int cpi); 258 259 /** 260 * Gets the resolved type denoted by the entry at index {@code cpi} in {@code constantPool}. 261 * 262 * The behavior of this method is undefined if {@code cpi} does not denote an entry representing 263 * a class. 264 * 265 * @throws LinkageError if resolution failed 266 */ 267 native HotSpotResolvedObjectTypeImpl resolveTypeInPool(HotSpotConstantPool constantPool, int cpi) throws LinkageError; 268 269 /** 270 * Looks up and attempts to resolve the {@code JVM_CONSTANT_Field} entry at index {@code cpi} in |