src/share/vm/oops/oop.hpp

Print this page

        

*** 1,7 **** /* ! * Copyright (c) 1997, 2009, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 20,43 **** * or visit www.oracle.com if you need additional information or have any * questions. * */ // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe // the format of Java objects so the fields can be accessed from C++. // oopDesc is abstract. // (see oopHierarchy for complete oop class hierarchy) // // no virtual functions allowed // store into oop with store check ! template <class T> inline void oop_store(T* p, oop v); ! template <class T> inline void oop_store(volatile T* p, oop v); // store into oop without store check ! template <class T> inline void oop_store_without_check(T* p, oop v); ! template <class T> inline void oop_store_without_check(volatile T* p, oop v); extern bool always_do_update_barrier; // Forward declarations. class OopClosure; --- 20,51 ---- * or visit www.oracle.com if you need additional information or have any * questions. * */ + #ifndef SHARE_VM_OOPS_OOP_HPP + #define SHARE_VM_OOPS_OOP_HPP + + #include "memory/iterator.hpp" + #include "memory/memRegion.hpp" + #include "memory/specialized_oop_closures.hpp" + #include "utilities/top.hpp" + // oopDesc is the top baseclass for objects classes. The {name}Desc classes describe // the format of Java objects so the fields can be accessed from C++. // oopDesc is abstract. // (see oopHierarchy for complete oop class hierarchy) // // no virtual functions allowed // store into oop with store check ! template <class T> void oop_store(T* p, oop v); ! template <class T> void oop_store(volatile T* p, oop v); // store into oop without store check ! template <class T> void oop_store_without_check(T* p, oop v); ! template <class T> void oop_store_without_check(volatile T* p, oop v); extern bool always_do_update_barrier; // Forward declarations. class OopClosure;
*** 401,405 **** --- 409,415 ---- // for code generation static int mark_offset_in_bytes() { return offset_of(oopDesc, _mark); } static int klass_offset_in_bytes() { return offset_of(oopDesc, _metadata._klass); } static int klass_gap_offset_in_bytes(); }; + + #endif // SHARE_VM_OOPS_OOP_HPP