1.1 --- a/src/share/vm/oops/oopsHierarchy.hpp Fri Aug 31 16:39:35 2012 -0700 1.2 +++ b/src/share/vm/oops/oopsHierarchy.hpp Sat Sep 01 13:25:18 2012 -0400 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -33,29 +33,19 @@ 1.11 // of B, A's representation is a prefix of B's representation. 1.12 1.13 typedef juint narrowOop; // Offset instead of address for an oop within a java object 1.14 -typedef class klassOopDesc* wideKlassOop; // to keep SA happy and unhandled oop 1.15 - // detector happy. 1.16 typedef void* OopOrNarrowOopStar; 1.17 +typedef class markOopDesc* markOop; 1.18 1.19 #ifndef CHECK_UNHANDLED_OOPS 1.20 1.21 typedef class oopDesc* oop; 1.22 typedef class instanceOopDesc* instanceOop; 1.23 -typedef class methodOopDesc* methodOop; 1.24 -typedef class constMethodOopDesc* constMethodOop; 1.25 -typedef class methodDataOopDesc* methodDataOop; 1.26 typedef class arrayOopDesc* arrayOop; 1.27 typedef class objArrayOopDesc* objArrayOop; 1.28 typedef class typeArrayOopDesc* typeArrayOop; 1.29 -typedef class constantPoolOopDesc* constantPoolOop; 1.30 -typedef class constantPoolCacheOopDesc* constantPoolCacheOop; 1.31 -typedef class klassOopDesc* klassOop; 1.32 -typedef class markOopDesc* markOop; 1.33 -typedef class compiledICHolderOopDesc* compiledICHolderOop; 1.34 1.35 #else 1.36 1.37 - 1.38 // When CHECK_UNHANDLED_OOPS is defined, an "oop" is a class with a 1.39 // carefully chosen set of constructors and conversion operators to go 1.40 // to and from the underlying oopDesc pointer type. 1.41 @@ -71,7 +61,6 @@ 1.42 // instead, which generates less code anyway. 1.43 1.44 class Thread; 1.45 -typedef class markOopDesc* markOop; 1.46 class PromotedObject; 1.47 1.48 1.49 @@ -106,7 +95,7 @@ 1.50 oopDesc* operator->() const { return obj(); } 1.51 bool operator==(const oop o) const { return obj() == o.obj(); } 1.52 bool operator==(void *p) const { return obj() == p; } 1.53 - bool operator!=(const oop o) const { return obj() != o.obj(); } 1.54 + bool operator!=(const volatile oop o) const { return obj() != o.obj(); } 1.55 bool operator!=(void *p) const { return obj() != p; } 1.56 bool operator==(intptr_t p) const { return obj() == (oopDesc*)p; } 1.57 bool operator!=(intptr_t p) const { return obj() != (oopDesc*)p; } 1.58 @@ -126,7 +115,7 @@ 1.59 operator markOop () const { return markOop(obj()); } 1.60 1.61 operator address () const { return (address)obj(); } 1.62 - operator intptr_t () const { return (intptr_t)obj(); } 1.63 + operator intptr_t () const volatile { return (intptr_t)obj(); } 1.64 1.65 // from javaCalls.cpp 1.66 operator jobject () const { return (jobject)obj(); } 1.67 @@ -139,7 +128,7 @@ 1.68 #endif 1.69 1.70 // from parNewGeneration and other things that want to get to the end of 1.71 - // an oop for stuff (like constMethodKlass.cpp, objArrayKlass.cpp) 1.72 + // an oop for stuff (like objArrayKlass.cpp) 1.73 operator oop* () const { return (oop *)obj(); } 1.74 }; 1.75 1.76 @@ -154,41 +143,37 @@ 1.77 type##OopDesc* operator->() const { \ 1.78 return (type##OopDesc*)obj(); \ 1.79 } \ 1.80 - }; \ 1.81 + }; 1.82 1.83 DEF_OOP(instance); 1.84 -DEF_OOP(method); 1.85 -DEF_OOP(methodData); 1.86 DEF_OOP(array); 1.87 -DEF_OOP(constMethod); 1.88 -DEF_OOP(constantPool); 1.89 -DEF_OOP(constantPoolCache); 1.90 DEF_OOP(objArray); 1.91 DEF_OOP(typeArray); 1.92 -DEF_OOP(klass); 1.93 -DEF_OOP(compiledICHolder); 1.94 1.95 #endif // CHECK_UNHANDLED_OOPS 1.96 1.97 +// The metadata hierarchy is separate from the oop hierarchy 1.98 + 1.99 +// class MetaspaceObj 1.100 +class ConstMethod; 1.101 +class ConstantPoolCache; 1.102 +class MethodData; 1.103 +// class Metadata 1.104 +class Method; 1.105 +class ConstantPool; 1.106 +// class CHeapObj 1.107 +class CompiledICHolder; 1.108 + 1.109 + 1.110 // The klass hierarchy is separate from the oop hierarchy. 1.111 1.112 class Klass; 1.113 -class instanceKlass; 1.114 +class InstanceKlass; 1.115 class instanceMirrorKlass; 1.116 +class instanceClassLoaderKlass; 1.117 class instanceRefKlass; 1.118 -class methodKlass; 1.119 -class constMethodKlass; 1.120 -class methodDataKlass; 1.121 -class klassKlass; 1.122 -class instanceKlassKlass; 1.123 -class arrayKlassKlass; 1.124 -class objArrayKlassKlass; 1.125 -class typeArrayKlassKlass; 1.126 class arrayKlass; 1.127 class objArrayKlass; 1.128 class typeArrayKlass; 1.129 -class constantPoolKlass; 1.130 -class constantPoolCacheKlass; 1.131 -class compiledICHolderKlass; 1.132 1.133 #endif // SHARE_VM_OOPS_OOPSHIERARCHY_HPP