Mercurial > hg > graal-compiler
changeset 895:94b6d06fd759
6860920: serialize.cpp shouldn't use objArrayOopDesc::base_offset_in_bytes(T_BYTE)
Summary: serialize.cpp currently uses objArrayOopDesc::base_offset_in_bytes(T_BYTE), which seems to be wrong.
Reviewed-by: coleenp, kvn
author | twisti |
---|---|
date | Mon, 20 Jul 2009 08:20:00 -0700 |
parents | 606c988ff684 |
children | 1cef5ec3ca56 |
files | src/share/vm/memory/serialize.cpp src/share/vm/oops/objArrayOop.hpp src/share/vm/opto/library_call.cpp |
diffstat | 3 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/memory/serialize.cpp Fri Jul 17 00:50:55 2009 -0700 +++ b/src/share/vm/memory/serialize.cpp Mon Jul 20 08:20:00 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));
--- a/src/share/vm/oops/objArrayOop.hpp Fri Jul 17 00:50:55 2009 -0700 +++ b/src/share/vm/oops/objArrayOop.hpp Mon Jul 20 08:20:00 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); }
--- a/src/share/vm/opto/library_call.cpp Fri Jul 17 00:50:55 2009 -0700 +++ b/src/share/vm/opto/library_call.cpp Mon Jul 20 08:20:00 2009 -0700 @@ -2074,7 +2074,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();