comparison src/share/vm/oops/arrayKlass.cpp @ 18046:096a7e12d63f

8036805: Correct linker method lookup. Summary: Correct handling of array of primitive type qualifiers during field and method resolution. Reviewed-by: acorn, hseigel, ahgross
author lfoltan
date Tue, 15 Apr 2014 16:17:20 -0400
parents 55fb97c4c58d
children 54bc75c144b0
comparison
equal deleted inserted replaced
17583:b5ae226b7516 18046:096a7e12d63f
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.
62 oop ArrayKlass::multi_allocate(int rank, jint* sizes, TRAPS) { 62 oop ArrayKlass::multi_allocate(int rank, jint* sizes, TRAPS) {
63 ShouldNotReachHere(); 63 ShouldNotReachHere();
64 return NULL; 64 return NULL;
65 } 65 }
66 66
67 // find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined
68 Klass* ArrayKlass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const {
69 // There are no fields in an array klass but look to the super class (Object)
70 assert(super(), "super klass must be present");
71 return super()->find_field(name, sig, fd);
72 }
73
67 Method* ArrayKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const { 74 Method* ArrayKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const {
68 // There are no methods in an array klass but the super class (Object) has some 75 // There are no methods in an array klass but the super class (Object) has some
69 assert(super(), "super klass must be present"); 76 assert(super(), "super klass must be present");
70 return super()->uncached_lookup_method(name, signature); 77 return super()->uncached_lookup_method(name, signature);
71 } 78 }