< prev index next >

src/hotspot/share/gc/g1/bufferingOopClosure.hpp

Print this page




 102   }
 103 
 104   void add_narrowOop(narrowOop* p) {
 105     assert(!is_buffer_full(), "Buffer should not be full");
 106     *_narrowOop_bottom = (OopOrNarrowOopStar)p;
 107     _narrowOop_bottom--;
 108   }
 109 
 110   void add_oop(oop* p) {
 111     assert(!is_buffer_full(), "Buffer should not be full");
 112     *_oop_top = (OopOrNarrowOopStar)p;
 113     _oop_top++;
 114   }
 115 
 116 public:
 117   virtual void do_oop(narrowOop* p) {
 118     process_buffer_if_full();
 119     add_narrowOop(p);
 120   }
 121 




 122   virtual void do_oop(oop* p)       {
 123     process_buffer_if_full();
 124     add_oop(p);




 125   }
 126 
 127   void done() {
 128     if (!is_buffer_empty()) {
 129       process_buffer();
 130     }
 131   }
 132 
 133   double closure_app_seconds() {
 134     return _closure_app_seconds;
 135   }
 136 
 137   BufferingOopClosure(OopClosure *oc) :
 138     _oc(oc),
 139     _oop_top(_buffer),
 140     _narrowOop_bottom(_buffer + BufferLength - 1),
 141     _closure_app_seconds(0.0) { }
 142 };
 143 
 144 #endif // SHARE_VM_GC_G1_BUFFERINGOOPCLOSURE_HPP


 102   }
 103 
 104   void add_narrowOop(narrowOop* p) {
 105     assert(!is_buffer_full(), "Buffer should not be full");
 106     *_narrowOop_bottom = (OopOrNarrowOopStar)p;
 107     _narrowOop_bottom--;
 108   }
 109 
 110   void add_oop(oop* p) {
 111     assert(!is_buffer_full(), "Buffer should not be full");
 112     *_oop_top = (OopOrNarrowOopStar)p;
 113     _oop_top++;
 114   }
 115 
 116 public:
 117   virtual void do_oop(narrowOop* p) {
 118     process_buffer_if_full();
 119     add_narrowOop(p);
 120   }
 121 
 122   virtual void do_oop_no_buffering(narrowOop* o) {
 123     _oc->do_oop(o);
 124   }
 125 
 126   virtual void do_oop(oop* p)       {
 127     process_buffer_if_full();
 128     add_oop(p);
 129   }
 130 
 131   virtual void do_oop_no_buffering(oop* o) {
 132     _oc->do_oop(o);
 133   }
 134 
 135   void done() {
 136     if (!is_buffer_empty()) {
 137       process_buffer();
 138     }
 139   }
 140 
 141   double closure_app_seconds() {
 142     return _closure_app_seconds;
 143   }
 144 
 145   BufferingOopClosure(OopClosure *oc) :
 146     _oc(oc),
 147     _oop_top(_buffer),
 148     _narrowOop_bottom(_buffer + BufferLength - 1),
 149     _closure_app_seconds(0.0) { }
 150 };
 151 
 152 #endif // SHARE_VM_GC_G1_BUFFERINGOOPCLOSURE_HPP
< prev index next >