src/share/vm/oops/oop.inline.hpp

changeset 4159
8e47bac5643a
parent 4129
22b8d3d181d9
child 4523
10d5f25a7c67
child 4542
db9981fd3124
     1.1 --- a/src/share/vm/oops/oop.inline.hpp	Mon Oct 08 17:04:00 2012 -0700
     1.2 +++ b/src/share/vm/oops/oop.inline.hpp	Tue Oct 09 10:11:38 2012 +0200
     1.3 @@ -185,8 +185,8 @@
     1.4  inline bool check_obj_alignment(oop obj) {
     1.5    return (intptr_t)obj % MinObjAlignmentInBytes == 0;
     1.6  }
     1.7 -inline bool check_obj_alignment(Klass* obj) {
     1.8 -  return (intptr_t)obj % MinObjAlignmentInBytes == 0;
     1.9 +inline bool check_klass_alignment(Klass* obj) {
    1.10 +  return (intptr_t)obj % KlassAlignmentInBytes == 0;
    1.11  }
    1.12  
    1.13  inline narrowOop oopDesc::encode_heap_oop_not_null(oop v) {
    1.14 @@ -228,9 +228,9 @@
    1.15  
    1.16  inline narrowOop oopDesc::encode_klass_not_null(Klass* v) {
    1.17    assert(!is_null(v), "oop value can never be zero");
    1.18 -  assert(check_obj_alignment(v), "Address not aligned");
    1.19 -  address base = Universe::narrow_oop_base();
    1.20 -  int    shift = Universe::narrow_oop_shift();
    1.21 +  assert(check_klass_alignment(v), "Address not aligned");
    1.22 +  address base = Universe::narrow_klass_base();
    1.23 +  int    shift = Universe::narrow_klass_shift();
    1.24    uint64_t  pd = (uint64_t)(pointer_delta((void*)v, (void*)base, 1));
    1.25    assert(OopEncodingHeapMax > pd, "change encoding max if new encoding");
    1.26    uint64_t result = pd >> shift;
    1.27 @@ -245,10 +245,10 @@
    1.28  
    1.29  inline Klass* oopDesc::decode_klass_not_null(narrowOop v) {
    1.30    assert(!is_null(v), "narrow oop value can never be zero");
    1.31 -  address base = Universe::narrow_oop_base();
    1.32 -  int    shift = Universe::narrow_oop_shift();
    1.33 +  address base = Universe::narrow_klass_base();
    1.34 +  int    shift = Universe::narrow_klass_shift();
    1.35    Klass* result = (Klass*)(void*)((uintptr_t)base + ((uintptr_t)v << shift));
    1.36 -  assert(check_obj_alignment(result), err_msg("address not aligned: " PTR_FORMAT, (void*) result));
    1.37 +  assert(check_klass_alignment(result), err_msg("address not aligned: " PTR_FORMAT, (void*) result));
    1.38    return result;
    1.39  }
    1.40  

mercurial