hotspot/src/share/vm/memory/genOopClosures.hpp
changeset 9323 20cc2230dc8a
parent 7397 5b173b4ca846
child 9443 921ea97b65fa
equal deleted inserted replaced
9141:b9b83b001cac 9323:20cc2230dc8a
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   173 
   173 
   174 class VerifyOopClosure: public OopClosure {
   174 class VerifyOopClosure: public OopClosure {
   175  protected:
   175  protected:
   176   template <class T> inline void do_oop_work(T* p) {
   176   template <class T> inline void do_oop_work(T* p) {
   177     oop obj = oopDesc::load_decode_heap_oop(p);
   177     oop obj = oopDesc::load_decode_heap_oop(p);
   178     guarantee(obj->is_oop_or_null(), "invalid oop");
   178     guarantee(obj->is_oop_or_null(), err_msg("invalid oop: " INTPTR_FORMAT, obj));
   179   }
   179   }
   180  public:
   180  public:
   181   virtual void do_oop(oop* p);
   181   virtual void do_oop(oop* p);
   182   virtual void do_oop(narrowOop* p);
   182   virtual void do_oop(narrowOop* p);
   183   static VerifyOopClosure verify_oop;
   183   static VerifyOopClosure verify_oop;