< prev index next >

src/share/vm/oops/oopsHierarchy.hpp

Print this page
rev 13429 : imported patch cmpxchg_template
rev 13451 : imported patch copyrights

*** 1,7 **** /* ! * Copyright (c) 1997, 2014, 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, 2017, 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.
*** 23,32 **** --- 23,34 ---- */ #ifndef SHARE_VM_OOPS_OOPSHIERARCHY_HPP #define SHARE_VM_OOPS_OOPSHIERARCHY_HPP + #include "metaprogramming/integerTypes.hpp" + #include "metaprogramming/integralConstant.hpp" #include "runtime/globals.hpp" #include "utilities/globalDefinitions.hpp" // OBJECT hierarchy // This hierarchy is a representation hierarchy, i.e. if A is a superclass
*** 140,149 **** --- 142,160 ---- // from parNewGeneration and other things that want to get to the end of // an oop for stuff (like ObjArrayKlass.cpp) operator oop* () const { return (oop *)obj(); } }; + template<> + struct IntegerTypes::Translate<oop> : public TrueType { + typedef oop Value; + typedef oopDesc* Decayed; + + static Decayed decay(Value x) { return x.obj(); } + static Value recover(Decayed x) { return oop(x); } + }; + #define DEF_OOP(type) \ class type##OopDesc; \ class type##Oop : public oop { \ public: \ type##Oop() : oop() {} \
< prev index next >