# HG changeset patch # User twisti # Date 1248700529 25200 # Node ID 1cef5ec3ca560c16ff38cce4bf4c3b2dbf1da1d9 # Parent 94b6d06fd75963776834488ec3863ceafa6b7379# Parent 665be97e87043168e56742b8d58982dd15669d18 Merge diff -r 665be97e8704 -r 1cef5ec3ca56 src/share/vm/memory/serialize.cpp --- a/src/share/vm/memory/serialize.cpp Sun Jul 26 16:40:14 2009 -0700 +++ b/src/share/vm/memory/serialize.cpp Mon Jul 27 06:15:29 2009 -0700 @@ -51,7 +51,7 @@ soc->do_tag(arrayOopDesc::base_offset_in_bytes(T_BYTE)); soc->do_tag(sizeof(constantPoolOopDesc)); soc->do_tag(sizeof(constantPoolCacheOopDesc)); - soc->do_tag(objArrayOopDesc::base_offset_in_bytes(T_BYTE)); + soc->do_tag(objArrayOopDesc::base_offset_in_bytes()); soc->do_tag(typeArrayOopDesc::base_offset_in_bytes(T_BYTE)); soc->do_tag(sizeof(symbolOopDesc)); soc->do_tag(sizeof(klassOopDesc)); diff -r 665be97e8704 -r 1cef5ec3ca56 src/share/vm/oops/objArrayOop.hpp --- a/src/share/vm/oops/objArrayOop.hpp Sun Jul 26 16:40:14 2009 -0700 +++ b/src/share/vm/oops/objArrayOop.hpp Mon Jul 27 06:15:29 2009 -0700 @@ -38,6 +38,11 @@ } public: + // Returns the offset of the first element. + static int base_offset_in_bytes() { + return arrayOopDesc::base_offset_in_bytes(T_OBJECT); + } + // base is the address following the header. HeapWord* base() const { return (HeapWord*) arrayOopDesc::base(T_OBJECT); } diff -r 665be97e8704 -r 1cef5ec3ca56 src/share/vm/opto/library_call.cpp --- a/src/share/vm/opto/library_call.cpp Sun Jul 26 16:40:14 2009 -0700 +++ b/src/share/vm/opto/library_call.cpp Mon Jul 27 06:15:29 2009 -0700 @@ -2064,7 +2064,7 @@ // See if it is a narrow oop array. if (adr_type->isa_aryptr()) { - if (adr_type->offset() >= objArrayOopDesc::base_offset_in_bytes(type)) { + if (adr_type->offset() >= objArrayOopDesc::base_offset_in_bytes()) { const TypeOopPtr *elem_type = adr_type->is_aryptr()->elem()->isa_oopptr(); if (elem_type != NULL) { sharpened_klass = elem_type->klass();