// Reserved for CMC MOVE ioctl implementation. We don't want to have 0x0 as // class-flags for any object. static constexpr uint32_t kClassFlagReservedForCMC = 0x00000000;
// Normal instance with at least one ref field other than the class. static constexpr uint32_t kClassFlagNormal = 0x00000001;
// Only normal objects which have no reference fields, e.g. string or primitive array or normal // class instance with no fields other than klass. static constexpr uint32_t kClassFlagNoReferenceFields = 0x00000002;
// Class is java.lang.String.class. static constexpr uint32_t kClassFlagString = 0x00000004;
// Class is an object array class. static constexpr uint32_t kClassFlagObjectArray = 0x00000008;
// Class is java.lang.Class.class. static constexpr uint32_t kClassFlagClass = 0x00000010;
// Class is ClassLoader or one of its subclasses. static constexpr uint32_t kClassFlagClassLoader = 0x00000020;
// Class is DexCache. static constexpr uint32_t kClassFlagDexCache = 0x00000040;
// Class is a soft/weak/phantom class. static constexpr uint32_t kClassFlagSoftReference = 0x00000080;
// Class is a weak reference class. static constexpr uint32_t kClassFlagWeakReference = 0x00000100;
// Class is a finalizer reference class. static constexpr uint32_t kClassFlagFinalizerReference = 0x00000200;
// Class is the phantom reference class. static constexpr uint32_t kClassFlagPhantomReference = 0x00000400;
// Class is a record class. See doc at java.lang.Class#isRecord(). static constexpr uint32_t kClassFlagRecord = 0x00000800;
// Class is a primitive array class. static constexpr uint32_t kClassFlagPrimitiveArray = 0x00001000;
// Class has non-zero static references. Needed for CMC GC compaction phase. static constexpr uint32_t kClassFlagHasStaticRefs = 0x00002000;
// Class has embedded vtable, which maybe 0 length. Needed for CMC GC compaction phase. static constexpr uint32_t kClassFlagHasEmbeddedVTable = 0x00004000;
// Class is a value class. static constexpr uint32_t kClassFlagValue = 0x00008000;
// NOTE: The most significant 2 bits are used to store the component size shift // for arrays (both primitive and object). See Primitive::ComponentSizeShift() // for size shift of different types. static constexpr uint32_t kArrayComponentSizeShiftShift = 30;
// Combination of flags to figure out if the class is either the weak/soft/phantom/finalizer // reference class. static constexpr uint32_t kClassFlagReference =
kClassFlagSoftReference |
kClassFlagWeakReference |
kClassFlagFinalizerReference |
kClassFlagPhantomReference;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.