diff 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
line wrap: on
line diff
--- a/src/share/vm/oops/arrayKlass.cpp	Mon Apr 07 09:27:31 2014 -0400
+++ b/src/share/vm/oops/arrayKlass.cpp	Tue Apr 15 16:17:20 2014 -0400
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -64,6 +64,13 @@
   return NULL;
 }
 
+// find field according to JVM spec 5.4.3.2, returns the klass in which the field is defined
+Klass* ArrayKlass::find_field(Symbol* name, Symbol* sig, fieldDescriptor* fd) const {
+  // There are no fields in an array klass but look to the super class (Object)
+  assert(super(), "super klass must be present");
+  return super()->find_field(name, sig, fd);
+}
+
 Method* ArrayKlass::uncached_lookup_method(Symbol* name, Symbol* signature) const {
   // There are no methods in an array klass but the super class (Object) has some
   assert(super(), "super klass must be present");