hotspot/src/share/vm/gc_implementation/g1/ptrQueue.cpp
changeset 1560 1b328492b7f8
parent 1374 4c24294029a9
child 1623 a0dd9009e992
equal deleted inserted replaced
1559:20339a90049b 1560:1b328492b7f8
    28 PtrQueue::PtrQueue(PtrQueueSet* qset_, bool perm) :
    28 PtrQueue::PtrQueue(PtrQueueSet* qset_, bool perm) :
    29   _qset(qset_), _buf(NULL), _index(0), _active(false),
    29   _qset(qset_), _buf(NULL), _index(0), _active(false),
    30   _perm(perm), _lock(NULL)
    30   _perm(perm), _lock(NULL)
    31 {}
    31 {}
    32 
    32 
    33 PtrQueue::~PtrQueue() {
    33 void PtrQueue::flush() {
    34   if (!_perm && _buf != NULL) {
    34   if (!_perm && _buf != NULL) {
    35     if (_index == _sz) {
    35     if (_index == _sz) {
    36       // No work to do.
    36       // No work to do.
    37       qset()->deallocate_buffer(_buf);
    37       qset()->deallocate_buffer(_buf);
    38     } else {
    38     } else {
    39       // We must NULL out the unused entries, then enqueue.
    39       // We must NULL out the unused entries, then enqueue.
    40       for (size_t i = 0; i < _index; i += oopSize) {
    40       for (size_t i = 0; i < _index; i += oopSize) {
    41         _buf[byte_index_to_index((int)i)] = NULL;
    41         _buf[byte_index_to_index((int)i)] = NULL;
    42       }
    42       }
    43       qset()->enqueue_complete_buffer(_buf);
    43       qset()->enqueue_complete_buffer(_buf);
    44       _buf = NULL;
       
    45     }
    44     }
       
    45     _buf = NULL;
       
    46     _index = 0;
    46   }
    47   }
    47 }
    48 }
    48 
    49 
    49 
    50 
    50 static int byte_index_to_index(int ind) {
    51 static int byte_index_to_index(int ind) {