src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp

changeset 6231
889068b9a088
parent 2314
f95d63e2154a
child 6876
710a3c8b516e
child 6969
02e61cf08ab3
     1.1 --- a/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp	Mon Jan 20 11:47:29 2014 +0100
     1.2 +++ b/src/share/vm/gc_implementation/g1/bufferingOopClosure.hpp	Mon Jan 20 11:47:53 2014 +0100
     1.3 @@ -98,116 +98,4 @@
     1.4      _closure_app_seconds(0.0) { }
     1.5  };
     1.6  
     1.7 -class BufferingOopsInGenClosure: public OopsInGenClosure {
     1.8 -  BufferingOopClosure _boc;
     1.9 -  OopsInGenClosure* _oc;
    1.10 - protected:
    1.11 -  template <class T> inline void do_oop_work(T* p) {
    1.12 -    assert(generation()->is_in_reserved((void*)p), "Must be in!");
    1.13 -    _boc.do_oop(p);
    1.14 -  }
    1.15 - public:
    1.16 -  BufferingOopsInGenClosure(OopsInGenClosure *oc) :
    1.17 -    _boc(oc), _oc(oc) {}
    1.18 -
    1.19 -  virtual void do_oop(narrowOop* p) { do_oop_work(p); }
    1.20 -  virtual void do_oop(oop* p)       { do_oop_work(p); }
    1.21 -
    1.22 -  void done() {
    1.23 -    _boc.done();
    1.24 -  }
    1.25 -
    1.26 -  double closure_app_seconds () {
    1.27 -    return _boc.closure_app_seconds();
    1.28 -  }
    1.29 -
    1.30 -  void set_generation(Generation* gen) {
    1.31 -    OopsInGenClosure::set_generation(gen);
    1.32 -    _oc->set_generation(gen);
    1.33 -  }
    1.34 -
    1.35 -  void reset_generation() {
    1.36 -    // Make sure we finish the current work with the current generation.
    1.37 -    _boc.done();
    1.38 -    OopsInGenClosure::reset_generation();
    1.39 -    _oc->reset_generation();
    1.40 -  }
    1.41 -
    1.42 -};
    1.43 -
    1.44 -
    1.45 -class BufferingOopsInHeapRegionClosure: public OopsInHeapRegionClosure {
    1.46 -private:
    1.47 -  enum PrivateConstants {
    1.48 -    BufferLength = 1024
    1.49 -  };
    1.50 -
    1.51 -  StarTask     _buffer[BufferLength];
    1.52 -  StarTask*    _buffer_top;
    1.53 -  StarTask*    _buffer_curr;
    1.54 -
    1.55 -  HeapRegion*  _hr_buffer[BufferLength];
    1.56 -  HeapRegion** _hr_curr;
    1.57 -
    1.58 -  OopsInHeapRegionClosure*  _oc;
    1.59 -  double                    _closure_app_seconds;
    1.60 -
    1.61 -  void process_buffer () {
    1.62 -
    1.63 -    assert((_hr_curr - _hr_buffer) == (_buffer_curr - _buffer),
    1.64 -           "the two lengths should be the same");
    1.65 -
    1.66 -    double start = os::elapsedTime();
    1.67 -    HeapRegion** hr_curr = _hr_buffer;
    1.68 -    HeapRegion*  hr_prev = NULL;
    1.69 -    for (StarTask* curr = _buffer; curr < _buffer_curr; ++curr) {
    1.70 -      HeapRegion* region = *hr_curr;
    1.71 -      if (region != hr_prev) {
    1.72 -        _oc->set_region(region);
    1.73 -        hr_prev = region;
    1.74 -      }
    1.75 -      if (curr->is_narrow()) {
    1.76 -        assert(UseCompressedOops, "Error");
    1.77 -        _oc->do_oop((narrowOop*)(*curr));
    1.78 -      } else {
    1.79 -        _oc->do_oop((oop*)(*curr));
    1.80 -      }
    1.81 -      ++hr_curr;
    1.82 -    }
    1.83 -    _buffer_curr = _buffer;
    1.84 -    _hr_curr = _hr_buffer;
    1.85 -    _closure_app_seconds += (os::elapsedTime() - start);
    1.86 -  }
    1.87 -
    1.88 -public:
    1.89 -  virtual void do_oop(narrowOop* p) { do_oop_work(p); }
    1.90 -  virtual void do_oop(      oop* p) { do_oop_work(p); }
    1.91 -
    1.92 -  template <class T> void do_oop_work(T* p) {
    1.93 -    if (_buffer_curr == _buffer_top) {
    1.94 -      assert(_hr_curr > _hr_buffer, "_hr_curr should be consistent with _buffer_curr");
    1.95 -      process_buffer();
    1.96 -    }
    1.97 -    StarTask new_ref(p);
    1.98 -    *_buffer_curr = new_ref;
    1.99 -    ++_buffer_curr;
   1.100 -    *_hr_curr = _from;
   1.101 -    ++_hr_curr;
   1.102 -  }
   1.103 -  void done () {
   1.104 -    if (_buffer_curr > _buffer) {
   1.105 -      assert(_hr_curr > _hr_buffer, "_hr_curr should be consistent with _buffer_curr");
   1.106 -      process_buffer();
   1.107 -    }
   1.108 -  }
   1.109 -  double closure_app_seconds () {
   1.110 -    return _closure_app_seconds;
   1.111 -  }
   1.112 -  BufferingOopsInHeapRegionClosure (OopsInHeapRegionClosure *oc) :
   1.113 -    _oc(oc),
   1.114 -    _buffer_curr(_buffer), _buffer_top(_buffer + BufferLength),
   1.115 -    _hr_curr(_hr_buffer),
   1.116 -    _closure_app_seconds(0.0) { }
   1.117 -};
   1.118 -
   1.119  #endif // SHARE_VM_GC_IMPLEMENTATION_G1_BUFFERINGOOPCLOSURE_HPP

mercurial