< prev index next >
src/share/vm/utilities/array.hpp
Print this page
*** 339,355 ****
size_t left = bytes - sizeof(Array<T>);
assert(is_size_aligned(left, sizeof(T)), "Must be");
size_t elements = left / sizeof(T);
! assert(elements <= (size_t)INT_MAX, err_msg("number of elements " SIZE_FORMAT "doesn't fit into an int.", elements));
int length = (int)elements;
assert((size_t)size(length) * BytesPerWord == bytes,
! err_msg("Expected: " SIZE_FORMAT " got: " SIZE_FORMAT,
! bytes, (size_t)size(length) * BytesPerWord));
return length;
}
explicit Array(int length) : _length(length) {
--- 339,355 ----
size_t left = bytes - sizeof(Array<T>);
assert(is_size_aligned(left, sizeof(T)), "Must be");
size_t elements = left / sizeof(T);
! assert(elements <= (size_t)INT_MAX, "number of elements " SIZE_FORMAT "doesn't fit into an int.", elements);
int length = (int)elements;
assert((size_t)size(length) * BytesPerWord == bytes,
! "Expected: " SIZE_FORMAT " got: " SIZE_FORMAT,
! bytes, (size_t)size(length) * BytesPerWord);
return length;
}
explicit Array(int length) : _length(length) {
*** 378,390 ****
}
// sort the array.
bool contains(const T& x) const { return index_of(x) >= 0; }
! T at(int i) const { assert(i >= 0 && i< _length, err_msg("oob: 0 <= %d < %d", i, _length)); return _data[i]; }
! void at_put(const int i, const T& x) { assert(i >= 0 && i< _length, err_msg("oob: 0 <= %d < %d", i, _length)); _data[i] = x; }
! T* adr_at(const int i) { assert(i >= 0 && i< _length, err_msg("oob: 0 <= %d < %d", i, _length)); return &_data[i]; }
int find(const T& x) { return index_of(x); }
T at_acquire(const int which) { return OrderAccess::load_acquire(adr_at(which)); }
void release_at_put(int which, T contents) { OrderAccess::release_store(adr_at(which), contents); }
--- 378,390 ----
}
// sort the array.
bool contains(const T& x) const { return index_of(x) >= 0; }
! T at(int i) const { assert(i >= 0 && i< _length, "oob: 0 <= %d < %d", i, _length); return _data[i]; }
! void at_put(const int i, const T& x) { assert(i >= 0 && i< _length, "oob: 0 <= %d < %d", i, _length); _data[i] = x; }
! T* adr_at(const int i) { assert(i >= 0 && i< _length, "oob: 0 <= %d < %d", i, _length); return &_data[i]; }
int find(const T& x) { return index_of(x); }
T at_acquire(const int which) { return OrderAccess::load_acquire(adr_at(which)); }
void release_at_put(int which, T contents) { OrderAccess::release_store(adr_at(which), contents); }
< prev index next >