hotspot/src/share/vm/memory/genOopClosures.hpp
changeset 29084 1b732f2836ce
parent 24424 2658d7834c6e
equal deleted inserted replaced
29083:5e7bce2712ac 29084:1b732f2836ce
     1 /*
     1 /*
     2  * Copyright (c) 2001, 2014, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2001, 2015, 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.
   187   virtual void do_oop(narrowOop* p);
   187   virtual void do_oop(narrowOop* p);
   188   inline void do_oop_nv(oop* p);
   188   inline void do_oop_nv(oop* p);
   189   inline void do_oop_nv(narrowOop* p);
   189   inline void do_oop_nv(narrowOop* p);
   190 };
   190 };
   191 
   191 
   192 class VerifyOopClosure: public OopClosure {
       
   193  protected:
       
   194   template <class T> inline void do_oop_work(T* p) {
       
   195     oop obj = oopDesc::load_decode_heap_oop(p);
       
   196     guarantee(obj->is_oop_or_null(), err_msg("invalid oop: " INTPTR_FORMAT, p2i((oopDesc*) obj)));
       
   197   }
       
   198  public:
       
   199   virtual void do_oop(oop* p);
       
   200   virtual void do_oop(narrowOop* p);
       
   201   static VerifyOopClosure verify_oop;
       
   202 };
       
   203 
       
   204 #endif // SHARE_VM_MEMORY_GENOOPCLOSURES_HPP
   192 #endif // SHARE_VM_MEMORY_GENOOPCLOSURES_HPP