Mercurial > hg > truffle
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 } |