6860920: serialize.cpp shouldn't use objArrayOopDesc::base_offset_in_bytes(T_BYTE)

Mon, 20 Jul 2009 08:20:00 -0700

author
twisti
date
Mon, 20 Jul 2009 08:20:00 -0700
changeset 1330
94b6d06fd759
parent 1289
606c988ff684
child 1331
1cef5ec3ca56

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

src/share/vm/memory/serialize.cpp file | annotate | diff | comparison | revisions
src/share/vm/oops/objArrayOop.hpp file | annotate | diff | comparison | revisions
src/share/vm/opto/library_call.cpp file | annotate | diff | comparison | revisions
     1.1 --- a/src/share/vm/memory/serialize.cpp	Fri Jul 17 00:50:55 2009 -0700
     1.2 +++ b/src/share/vm/memory/serialize.cpp	Mon Jul 20 08:20:00 2009 -0700
     1.3 @@ -51,7 +51,7 @@
     1.4    soc->do_tag(arrayOopDesc::base_offset_in_bytes(T_BYTE));
     1.5    soc->do_tag(sizeof(constantPoolOopDesc));
     1.6    soc->do_tag(sizeof(constantPoolCacheOopDesc));
     1.7 -  soc->do_tag(objArrayOopDesc::base_offset_in_bytes(T_BYTE));
     1.8 +  soc->do_tag(objArrayOopDesc::base_offset_in_bytes());
     1.9    soc->do_tag(typeArrayOopDesc::base_offset_in_bytes(T_BYTE));
    1.10    soc->do_tag(sizeof(symbolOopDesc));
    1.11    soc->do_tag(sizeof(klassOopDesc));
     2.1 --- a/src/share/vm/oops/objArrayOop.hpp	Fri Jul 17 00:50:55 2009 -0700
     2.2 +++ b/src/share/vm/oops/objArrayOop.hpp	Mon Jul 20 08:20:00 2009 -0700
     2.3 @@ -38,6 +38,11 @@
     2.4    }
     2.5  
     2.6   public:
     2.7 +  // Returns the offset of the first element.
     2.8 +  static int base_offset_in_bytes() {
     2.9 +    return arrayOopDesc::base_offset_in_bytes(T_OBJECT);
    2.10 +  }
    2.11 +
    2.12    // base is the address following the header.
    2.13    HeapWord* base() const      { return (HeapWord*) arrayOopDesc::base(T_OBJECT); }
    2.14  
     3.1 --- a/src/share/vm/opto/library_call.cpp	Fri Jul 17 00:50:55 2009 -0700
     3.2 +++ b/src/share/vm/opto/library_call.cpp	Mon Jul 20 08:20:00 2009 -0700
     3.3 @@ -2074,7 +2074,7 @@
     3.4  
     3.5      // See if it is a narrow oop array.
     3.6      if (adr_type->isa_aryptr()) {
     3.7 -      if (adr_type->offset() >= objArrayOopDesc::base_offset_in_bytes(type)) {
     3.8 +      if (adr_type->offset() >= objArrayOopDesc::base_offset_in_bytes()) {
     3.9          const TypeOopPtr *elem_type = adr_type->is_aryptr()->elem()->isa_oopptr();
    3.10          if (elem_type != NULL) {
    3.11            sharpened_klass = elem_type->klass();

mercurial