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