< prev index next >
src/share/vm/utilities/bitMap.cpp
Print this page
rev 10387 : 8151436: Leaner ArrayAllocator and BitMaps
Reviewed-by: tschatzl, pliden, kbarrett
*** 28,45 ****
#include "runtime/atomic.inline.hpp"
#include "utilities/bitMap.inline.hpp"
#include "utilities/copy.hpp"
BitMap::BitMap(bm_word_t* map, idx_t size_in_bits) :
! _map(map), _size(size_in_bits), _map_allocator(false)
{
assert(sizeof(bm_word_t) == BytesPerWord, "Implementation assumption.");
}
BitMap::BitMap(idx_t size_in_bits, bool in_resource_area) :
! _map(NULL), _size(0), _map_allocator(false)
{
assert(sizeof(bm_word_t) == BytesPerWord, "Implementation assumption.");
resize(size_in_bits, in_resource_area);
}
--- 28,45 ----
#include "runtime/atomic.inline.hpp"
#include "utilities/bitMap.inline.hpp"
#include "utilities/copy.hpp"
BitMap::BitMap(bm_word_t* map, idx_t size_in_bits) :
! _map(map), _size(size_in_bits)
{
assert(sizeof(bm_word_t) == BytesPerWord, "Implementation assumption.");
}
BitMap::BitMap(idx_t size_in_bits, bool in_resource_area) :
! _map(NULL), _size(0)
{
assert(sizeof(bm_word_t) == BytesPerWord, "Implementation assumption.");
resize(size_in_bits, in_resource_area);
}
*** 52,62 ****
if (in_resource_area) {
_map = NEW_RESOURCE_ARRAY(bm_word_t, new_size_in_words);
Copy::disjoint_words((HeapWord*)old_map, (HeapWord*) _map,
MIN2(old_size_in_words, new_size_in_words));
} else {
! _map = _map_allocator.reallocate(new_size_in_words);
}
if (new_size_in_words > old_size_in_words) {
clear_range_of_words(old_size_in_words, new_size_in_words);
}
--- 52,62 ----
if (in_resource_area) {
_map = NEW_RESOURCE_ARRAY(bm_word_t, new_size_in_words);
Copy::disjoint_words((HeapWord*)old_map, (HeapWord*) _map,
MIN2(old_size_in_words, new_size_in_words));
} else {
! _map = ArrayAllocator<bm_word_t, mtInternal>::reallocate(old_map, old_size_in_words, new_size_in_words);
}
if (new_size_in_words > old_size_in_words) {
clear_range_of_words(old_size_in_words, new_size_in_words);
}
< prev index next >