src/share/vm/runtime/jniHandles.cpp

changeset 548
ba764ed4b6f2
parent 435
a61af66fc99e
child 631
d1605aabd0a1
equal deleted inserted replaced
545:a49a647afe9a 548:ba764ed4b6f2
204 class CountHandleClosure: public OopClosure { 204 class CountHandleClosure: public OopClosure {
205 private: 205 private:
206 int _count; 206 int _count;
207 public: 207 public:
208 CountHandleClosure(): _count(0) {} 208 CountHandleClosure(): _count(0) {}
209 void do_oop(oop* unused) { 209 virtual void do_oop(oop* unused) {
210 _count++; 210 _count++;
211 } 211 }
212 virtual void do_oop(narrowOop* unused) { ShouldNotReachHere(); }
212 int count() { return _count; } 213 int count() { return _count; }
213 }; 214 };
214 215
215 // We assume this is called at a safepoint: no lock is needed. 216 // We assume this is called at a safepoint: no lock is needed.
216 void JNIHandles::print_on(outputStream* st) { 217 void JNIHandles::print_on(outputStream* st) {
228 st->flush(); 229 st->flush();
229 } 230 }
230 231
231 class VerifyHandleClosure: public OopClosure { 232 class VerifyHandleClosure: public OopClosure {
232 public: 233 public:
233 void do_oop(oop* root) { 234 virtual void do_oop(oop* root) {
234 (*root)->verify(); 235 (*root)->verify();
235 } 236 }
237 virtual void do_oop(narrowOop* root) { ShouldNotReachHere(); }
236 }; 238 };
237 239
238 void JNIHandles::verify() { 240 void JNIHandles::verify() {
239 VerifyHandleClosure verify_handle; 241 VerifyHandleClosure verify_handle;
240 AlwaysAliveClosure always_alive; 242 AlwaysAliveClosure always_alive;

mercurial