Mercurial > hg > truffle
comparison src/share/vm/oops/instanceKlass.hpp @ 14518:d8041d695d19
Merged with jdk9/dev/hotspot changeset 3812c088b945
author | twisti |
---|---|
date | Tue, 11 Mar 2014 18:45:59 -0700 |
parents | 02f27ecb4f3a fdad2932c73f |
children | 4ca6dc0799b6 |
comparison
equal
deleted
inserted
replaced
14141:f97c5ec83832 | 14518:d8041d695d19 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 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. |
304 // The embedded implementor only exists if the current klass is an | 304 // The embedded implementor only exists if the current klass is an |
305 // iterface. The possible values of the implementor fall into following | 305 // iterface. The possible values of the implementor fall into following |
306 // three cases: | 306 // three cases: |
307 // NULL: no implementor. | 307 // NULL: no implementor. |
308 // A Klass* that's not itself: one implementor. | 308 // A Klass* that's not itself: one implementor. |
309 // Itsef: more than one implementors. | 309 // Itself: more than one implementors. |
310 // embedded host klass follows here | 310 // embedded host klass follows here |
311 // The embedded host klass only exists in an anonymous class for | 311 // The embedded host klass only exists in an anonymous class for |
312 // dynamic language support (JSR 292 enabled). The host class grants | 312 // dynamic language support (JSR 292 enabled). The host class grants |
313 // its access privileges to this class also. The host class is either | 313 // its access privileges to this class also. The host class is either |
314 // named, or a previously loaded anonymous class. A non-anonymous class | 314 // named, or a previously loaded anonymous class. A non-anonymous class |
523 // lookup operation (returns NULL if not found) | 523 // lookup operation (returns NULL if not found) |
524 Method* uncached_lookup_method(Symbol* name, Symbol* signature) const; | 524 Method* uncached_lookup_method(Symbol* name, Symbol* signature) const; |
525 | 525 |
526 // lookup a method in all the interfaces that this class implements | 526 // lookup a method in all the interfaces that this class implements |
527 // (returns NULL if not found) | 527 // (returns NULL if not found) |
528 Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature) const; | 528 Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature, bool skip_default_methods) const; |
529 | |
529 // lookup a method in local defaults then in all interfaces | 530 // lookup a method in local defaults then in all interfaces |
530 // (returns NULL if not found) | 531 // (returns NULL if not found) |
531 Method* lookup_method_in_ordered_interfaces(Symbol* name, Symbol* signature) const; | 532 Method* lookup_method_in_ordered_interfaces(Symbol* name, Symbol* signature) const; |
532 | 533 |
533 // Find method indices by name. If a method with the specified name is | 534 // Find method indices by name. If a method with the specified name is |
551 Klass* host_klass() const { | 552 Klass* host_klass() const { |
552 Klass** hk = (Klass**)adr_host_klass(); | 553 Klass** hk = (Klass**)adr_host_klass(); |
553 if (hk == NULL) { | 554 if (hk == NULL) { |
554 return NULL; | 555 return NULL; |
555 } else { | 556 } else { |
557 assert(*hk != NULL, "host klass should always be set if the address is not null"); | |
556 return *hk; | 558 return *hk; |
557 } | 559 } |
558 } | 560 } |
559 void set_host_klass(Klass* host) { | 561 void set_host_klass(Klass* host) { |
560 assert(is_anonymous(), "not anonymous"); | 562 assert(is_anonymous(), "not anonymous"); |
1083 #endif | 1085 #endif |
1084 | 1086 |
1085 const char* internal_name() const; | 1087 const char* internal_name() const; |
1086 | 1088 |
1087 // Verification | 1089 // Verification |
1088 void verify_on(outputStream* st, bool check_dictionary); | 1090 void verify_on(outputStream* st); |
1089 | 1091 |
1090 void oop_verify_on(oop obj, outputStream* st); | 1092 void oop_verify_on(oop obj, outputStream* st); |
1091 }; | 1093 }; |
1092 | 1094 |
1093 inline Method* InstanceKlass::method_at_vtable(int index) { | 1095 inline Method* InstanceKlass::method_at_vtable(int index) { |