src/share/vm/utilities/array.cpp

changeset 3900
d2a62e0f25eb
parent 3156
f08d439fab8c
child 4153
b9a9ed0f8eeb
     1.1 --- a/src/share/vm/utilities/array.cpp	Wed Jun 27 15:23:36 2012 +0200
     1.2 +++ b/src/share/vm/utilities/array.cpp	Thu Jun 28 17:03:16 2012 -0400
     1.3 @@ -49,7 +49,7 @@
     1.4  void ResourceArray::sort(size_t esize, ftype f) {
     1.5    if (!is_empty()) qsort(_data, length(), esize, f);
     1.6  }
     1.7 -void CHeapArray::sort(size_t esize, ftype f) {
     1.8 +template <MEMFLAGS F> void CHeapArray<F>::sort(size_t esize, ftype f) {
     1.9    if (!is_empty()) qsort(_data, length(), esize, f);
    1.10  }
    1.11  
    1.12 @@ -70,14 +70,14 @@
    1.13  }
    1.14  
    1.15  
    1.16 -void CHeapArray::expand(size_t esize, int i, int& size) {
    1.17 +template <MEMFLAGS F> void CHeapArray<F>::expand(size_t esize, int i, int& size) {
    1.18    // determine new size
    1.19    if (size == 0) size = 4; // prevent endless loop
    1.20    while (i >= size) size *= 2;
    1.21    // allocate and initialize new data section
    1.22 -  void* data = NEW_C_HEAP_ARRAY(char*, esize * size);
    1.23 +  void* data = NEW_C_HEAP_ARRAY(char*, esize * size, F);
    1.24    memcpy(data, _data, esize * length());
    1.25 -  FREE_C_HEAP_ARRAY(char*, _data);
    1.26 +  FREE_C_HEAP_ARRAY(char*, _data, F);
    1.27    _data = data;
    1.28  }
    1.29  
    1.30 @@ -91,7 +91,7 @@
    1.31    memmove(dst, src, cnt);
    1.32  }
    1.33  
    1.34 -void CHeapArray::remove_at(size_t esize, int i) {
    1.35 +template <MEMFLAGS F> void CHeapArray<F>::remove_at(size_t esize, int i) {
    1.36    assert(0 <= i && i < length(), "index out of bounds");
    1.37    _length--;
    1.38    void* dst = (char*)_data + i*esize;

mercurial