8054530: C2: assert(res == old_res) failed: Inconsistency between old and new
Fixed signedness problem with assertion. Reviewed-by: kvn
This commit is contained in:
parent
c86e8f5a2c
commit
b3f78699f7
@ -45,9 +45,10 @@ class objArrayOopDesc : public arrayOopDesc {
|
||||
private:
|
||||
// Give size of objArrayOop in HeapWords minus the header
|
||||
static int array_size(int length) {
|
||||
const int OopsPerHeapWord = HeapWordSize/heapOopSize;
|
||||
const uint OopsPerHeapWord = HeapWordSize/heapOopSize;
|
||||
assert(OopsPerHeapWord >= 1 && (HeapWordSize % heapOopSize == 0),
|
||||
"Else the following (new) computation would be in error");
|
||||
uint res = ((uint)length + OopsPerHeapWord - 1)/OopsPerHeapWord;
|
||||
#ifdef ASSERT
|
||||
// The old code is left in for sanity-checking; it'll
|
||||
// go away pretty soon. XXX
|
||||
@ -55,16 +56,15 @@ private:
|
||||
// oop->length() * HeapWordsPerOop;
|
||||
// With narrowOops, HeapWordsPerOop is 1/2 or equal 0 as an integer.
|
||||
// The oop elements are aligned up to wordSize
|
||||
const int HeapWordsPerOop = heapOopSize/HeapWordSize;
|
||||
int old_res;
|
||||
const uint HeapWordsPerOop = heapOopSize/HeapWordSize;
|
||||
uint old_res;
|
||||
if (HeapWordsPerOop > 0) {
|
||||
old_res = length * HeapWordsPerOop;
|
||||
} else {
|
||||
old_res = align_size_up(length, OopsPerHeapWord)/OopsPerHeapWord;
|
||||
old_res = align_size_up((uint)length, OopsPerHeapWord)/OopsPerHeapWord;
|
||||
}
|
||||
#endif // ASSERT
|
||||
int res = ((uint)length + OopsPerHeapWord - 1)/OopsPerHeapWord;
|
||||
assert(res == old_res, "Inconsistency between old and new.");
|
||||
#endif // ASSERT
|
||||
return res;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user