00001 /* Copyright 1994, 1995 LongView Technologies L.L.C. $Revision: 1.21 $ */ 00002 /* Copyright (c) 2006, Sun Microsystems, Inc. 00003 All rights reserved. 00004 00005 Redistribution and use in source and binary forms, with or without modification, are permitted provided that the 00006 following conditions are met: 00007 00008 * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 00009 * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following 00010 disclaimer in the documentation and/or other materials provided with the distribution. 00011 * Neither the name of Sun Microsystems nor the names of its contributors may be used to endorse or promote products derived 00012 from this software without specific prior written permission. 00013 00014 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT 00015 NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 00016 THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00017 (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 00018 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 00019 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE 00020 00021 00022 */ 00023 00024 // OBJECT hierarchy 00025 // This hierarchy is a representation hierarchy, i.e. if A is a superclass 00026 // of B, A's representation is a prefix of B's representation. 00027 00028 typedef class oopDesc* oop; 00029 typedef class smiOopDesc* smiOop; 00030 typedef class markOopDesc* markOop; 00031 typedef class memOopDesc* memOop; 00032 typedef class associationOopDesc* associationOop; 00033 typedef class methodOopDesc* methodOop; 00034 typedef class doubleOopDesc* doubleOop; 00035 typedef class objArrayOopDesc* objArrayOop; 00036 typedef class weakArrayOopDesc* weakArrayOop; 00037 typedef class doubleByteArrayOopDesc* doubleByteArrayOop; 00038 typedef class doubleValueArrayOopDesc* doubleValueArrayOop; 00039 typedef class byteArrayOopDesc* byteArrayOop; 00040 typedef class symbolOopDesc* symbolOop; 00041 typedef class blockClosureOopDesc* blockClosureOop; 00042 typedef class contextOopDesc* contextOop; 00043 typedef class processOopDesc* processOop; 00044 typedef class proxyOopDesc* proxyOop; 00045 typedef class vframeOopDesc* vframeOop; 00046 typedef class systemDictionaryDesc* systemDictionaryOop; 00047 typedef class klassOopDesc* klassOop; 00048 typedef class mixinOopDesc* mixinOop; 00049 typedef class messageOopDesc* messageOop; 00050 00051 00052 // The klass hierarchy is separate from the oop hierarchy. 00053 00054 class Klass; 00055 class memOopKlass; 00056 class klassKlass; 00057 class associationKlass; 00058 class doubleKlass; 00059 class objArrayKlass; 00060 class weakArrayKlass; 00061 class doubleByteArrayKlass; 00062 class doubleValueArrayKlass; 00063 class byteArrayKlass; 00064 class symbolKlass; 00065 class methodKlass; 00066 class blockClosureKlass; 00067 class contextKlass; 00068 class processKlass; 00069 class proxyKlass; 00070 class mixinKlass; 00071 class vframeKlass; 00072 class smiKlass; 00073 00074 00075