Mercurial > hg > truffle
comparison src/share/vm/oops/instanceKlass.hpp @ 14909:4ca6dc0799b6
Backout jdk9 merge
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Tue, 01 Apr 2014 13:57:07 +0200 |
parents | d8041d695d19 |
children | 5e6f29f287d6 |
comparison
equal
deleted
inserted
replaced
14908:8db6e76cb658 | 14909:4ca6dc0799b6 |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved. | 2 * Copyright (c) 1997, 2013, 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 // Itself: more than one implementors. | 309 // Itsef: 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, bool skip_default_methods) const; | 528 Method* lookup_method_in_all_interfaces(Symbol* name, Symbol* signature) const; |
529 | |
530 // lookup a method in local defaults then in all interfaces | 529 // lookup a method in local defaults then in all interfaces |
531 // (returns NULL if not found) | 530 // (returns NULL if not found) |
532 Method* lookup_method_in_ordered_interfaces(Symbol* name, Symbol* signature) const; | 531 Method* lookup_method_in_ordered_interfaces(Symbol* name, Symbol* signature) const; |
533 | 532 |
534 // Find method indices by name. If a method with the specified name is | 533 // Find method indices by name. If a method with the specified name is |
552 Klass* host_klass() const { | 551 Klass* host_klass() const { |
553 Klass** hk = (Klass**)adr_host_klass(); | 552 Klass** hk = (Klass**)adr_host_klass(); |
554 if (hk == NULL) { | 553 if (hk == NULL) { |
555 return NULL; | 554 return NULL; |
556 } else { | 555 } else { |
557 assert(*hk != NULL, "host klass should always be set if the address is not null"); | |
558 return *hk; | 556 return *hk; |
559 } | 557 } |
560 } | 558 } |
561 void set_host_klass(Klass* host) { | 559 void set_host_klass(Klass* host) { |
562 assert(is_anonymous(), "not anonymous"); | 560 assert(is_anonymous(), "not anonymous"); |
1085 #endif | 1083 #endif |
1086 | 1084 |
1087 const char* internal_name() const; | 1085 const char* internal_name() const; |
1088 | 1086 |
1089 // Verification | 1087 // Verification |
1090 void verify_on(outputStream* st); | 1088 void verify_on(outputStream* st, bool check_dictionary); |
1091 | 1089 |
1092 void oop_verify_on(oop obj, outputStream* st); | 1090 void oop_verify_on(oop obj, outputStream* st); |
1093 }; | 1091 }; |
1094 | 1092 |
1095 inline Method* InstanceKlass::method_at_vtable(int index) { | 1093 inline Method* InstanceKlass::method_at_vtable(int index) { |