hotspot/src/share/vm/runtime/jniHandles.cpp
changeset 360 21d113ecbf6a
parent 1 489c9b5090e2
child 670 ddf3e9583f2f
equal deleted inserted replaced
357:f4edb0d9f109 360:21d113ecbf6a
   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;