1 /* |
1 /* |
2 * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1999, 2017, 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. |
959 case Bytecodes::_invokehandle: { |
959 case Bytecodes::_invokehandle: { |
960 int cache_index = ConstantPool::decode_cpcache_index(index, true); |
960 int cache_index = ConstantPool::decode_cpcache_index(index, true); |
961 assert(cache_index >= 0 && cache_index < pool->cache()->length(), "unexpected cache index"); |
961 assert(cache_index >= 0 && cache_index < pool->cache()->length(), "unexpected cache index"); |
962 ConstantPoolCacheEntry* cpce = pool->cache()->entry_at(cache_index); |
962 ConstantPoolCacheEntry* cpce = pool->cache()->entry_at(cache_index); |
963 cpce->set_method_handle(pool, info); |
963 cpce->set_method_handle(pool, info); |
964 appendix = cpce->appendix_if_resolved(pool); // just in case somebody already resolved the entry |
964 appendix = Handle(THREAD, cpce->appendix_if_resolved(pool)); // just in case somebody already resolved the entry |
965 break; |
965 break; |
966 } |
966 } |
967 case Bytecodes::_invokedynamic: { |
967 case Bytecodes::_invokedynamic: { |
968 ConstantPoolCacheEntry* cpce = pool->invokedynamic_cp_cache_entry_at(index); |
968 ConstantPoolCacheEntry* cpce = pool->invokedynamic_cp_cache_entry_at(index); |
969 cpce->set_dynamic_call(pool, info); |
969 cpce->set_dynamic_call(pool, info); |
970 appendix = cpce->appendix_if_resolved(pool); // just in case somebody already resolved the entry |
970 appendix = Handle(THREAD, cpce->appendix_if_resolved(pool)); // just in case somebody already resolved the entry |
971 break; |
971 break; |
972 } |
972 } |
973 default: fatal("unexpected bytecode for load_appendix_patching_id"); |
973 default: fatal("unexpected bytecode for load_appendix_patching_id"); |
974 } |
974 } |
975 } else { |
975 } else { |