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

changeset 568
435e64505015
parent 548
ba764ed4b6f2
child 570
b7268662a986
equal deleted inserted replaced
557:ec73d88d5b43 568:435e64505015
133 133
134 inline narrowOop oopDesc::encode_heap_oop_not_null(oop v) { 134 inline narrowOop oopDesc::encode_heap_oop_not_null(oop v) {
135 assert(!is_null(v), "oop value can never be zero"); 135 assert(!is_null(v), "oop value can never be zero");
136 address heap_base = Universe::heap_base(); 136 address heap_base = Universe::heap_base();
137 uint64_t result = (uint64_t)(pointer_delta((void*)v, (void*)heap_base, 1) >> LogMinObjAlignmentInBytes); 137 uint64_t result = (uint64_t)(pointer_delta((void*)v, (void*)heap_base, 1) >> LogMinObjAlignmentInBytes);
138 assert((result & 0xffffffff00000000L) == 0, "narrow oop overflow"); 138 assert((result & 0xffffffff00000000ULL) == 0, "narrow oop overflow");
139 return (narrowOop)result; 139 return (narrowOop)result;
140 } 140 }
141 141
142 inline narrowOop oopDesc::encode_heap_oop(oop v) { 142 inline narrowOop oopDesc::encode_heap_oop(oop v) {
143 return (is_null(v)) ? (narrowOop)0 : encode_heap_oop_not_null(v); 143 return (is_null(v)) ? (narrowOop)0 : encode_heap_oop_not_null(v);

mercurial