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) {