@Unmanaged @StaticInit public class ExceptionHandler extends Structure { public int id; public RuntimeClass exceptionClass; }
@Unmanaged private static void fillEnumConstantsImpl(RuntimeClass cls, Address[] array) { Address enumValues = cls.enumValues; for (int i = 0; i < array.length; i++) { enumValues = enumValues.add(Address.sizeOf()); array[i] = enumValues.getAddress().getAddress(); } }
@Unmanaged private static int getEnumConstantsSizeImpl(RuntimeClass cls) { Address enumValues = cls.enumValues; if (enumValues == null) { return -1; } return enumValues.getAddress().toInt(); }
@Unmanaged private void setSimpleNameCacheLowLevel(RuntimeObject object) { Address.ofObject(this).<RuntimeClass>toStructure().simpleName = object; }
@PlatformMarker private static boolean isBootstrap() { return false; } }
@Unmanaged public static TObject wrap(Object obj) { return (TObject) obj; } }
@Override @DelegateTo("fillInStackTraceLowLevel") public Throwable fillInStackTrace() { return this; }
@StaticInit public class RuntimeObject extends Structure { public static final int GC_MARKED = 0x80000000; public static int nextId; public int classReference; public int hashCode; }
private static void updateFreeMemory() { freeMemory = 0; FreeChunkHolder freeChunkPtr = currentChunkPointer; for (int i = 0; i < freeChunks; ++i) { freeMemory += freeChunkPtr.value.size; freeChunkPtr = Structure.add(FreeChunkHolder.class, freeChunkPtr, 1); } }
@Unmanaged @StaticInit public class CallSite extends Structure { public int handlerCount; public ExceptionHandler firstHandler; public CallSiteLocation location; }
@PlatformMarker private static boolean isBootstrap() { return false; } }
@SuppressWarnings("unused") @Unmanaged private static boolean isPrimitiveLowLevel(RuntimeClass cls) { return (cls.flags & RuntimeClass.PRIMITIVE) != 0; }
/** * Returns the total amount of memory in the Java Virtual Machine. The value * returned by this method may vary over time, depending on the host * environment. Note that the amount of memory required to hold an object of * any given type may be implementation-dependent. */ @DelegateTo("totalMemoryLowLevel") public long totalMemory() { return Integer.MAX_VALUE; }
@Unmanaged @StaticInit public final class Mutator { private Mutator() { } public static native Address getStaticGCRoots(); }
@PlatformMarker private static boolean isBootstrap() { return false; } }
@Unmanaged @StaticInit public class CallSiteLocation extends Structure { public String fileName; public String className; public String methodName; public int lineNumber; }
@PlatformMarker(PlatformMarkers.LOW_LEVEL) public static boolean isLowLevel() { return false; } }