1 /* |
1 /* |
2 * Copyright (c) 1997, 2016, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 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. |
766 #endif |
766 #endif |
767 // Get sender or sender's host_klass, and only set cpCache entry to resolved if |
767 // Get sender or sender's host_klass, and only set cpCache entry to resolved if |
768 // it is not an interface. The receiver for invokespecial calls within interface |
768 // it is not an interface. The receiver for invokespecial calls within interface |
769 // methods must be checked for every call. |
769 // methods must be checked for every call. |
770 InstanceKlass* sender = pool->pool_holder(); |
770 InstanceKlass* sender = pool->pool_holder(); |
771 sender = sender->is_anonymous() ? InstanceKlass::cast(sender->host_klass()) : sender; |
771 sender = sender->has_host_klass() ? InstanceKlass::cast(sender->host_klass()) : sender; |
772 |
772 |
773 switch (info.call_kind()) { |
773 switch (info.call_kind()) { |
774 case CallInfo::direct_call: |
774 case CallInfo::direct_call: |
775 cache_entry(thread)->set_direct_call( |
775 cache_entry(thread)->set_direct_call( |
776 bytecode, |
776 bytecode, |