Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Allocator
Class HeapAllocator  view HeapAllocator download HeapAllocator.java

java.lang.Object
  extended byAllocator.HeapAllocator
All Implemented Interfaces:
Clazz.jq_ClassFileConstants
Direct Known Subclasses:
SimpleAllocator

public abstract class HeapAllocator
extends java.lang.Object
implements Clazz.jq_ClassFileConstants

HeapAllocator

Version:
$Id: HeapAllocator.java,v 1.16 2003/05/12 10:04:52 joewhaley Exp $

Nested Class Summary
static class HeapAllocator.HeapPointer
          An object of this class represents a pointer to a heap address.
 
Field Summary
static Clazz.jq_StaticMethod _clsinitAndAllocateObject
           
private static boolean isOutOfMemory
           
private static java.lang.OutOfMemoryError outofmemoryerror
           
 
Fields inherited from interface Clazz.jq_ClassFileConstants
ACC_ABSTRACT, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_TRANSIENT, ACC_VOLATILE, CONSTANT_Class, CONSTANT_Double, CONSTANT_FieldRef, CONSTANT_Float, CONSTANT_Integer, CONSTANT_InterfaceMethodRef, CONSTANT_Long, CONSTANT_MethodRef, CONSTANT_NameAndType, CONSTANT_ResolvedClass, CONSTANT_ResolvedIFieldRef, CONSTANT_ResolvedIMethodRef, CONSTANT_ResolvedSFieldRef, CONSTANT_ResolvedSMethodRef, CONSTANT_String, CONSTANT_Utf8, CONSUME_STACK, ILLEGAL_OPCODE, ILLEGAL_TYPE, jbc_AALOAD, jbc_AASTORE, jbc_ACONST_NULL, jbc_ALOAD, jbc_ALOAD_0, jbc_ALOAD_1, jbc_ALOAD_2, jbc_ALOAD_3, jbc_ANEWARRAY, jbc_ARETURN, jbc_ARRAYLENGTH, jbc_ASTORE, jbc_ASTORE_0, jbc_ASTORE_1, jbc_ASTORE_2, jbc_ASTORE_3, jbc_ATHROW, jbc_BALOAD, jbc_BASTORE, jbc_BIPUSH, jbc_BREAKPOINT, jbc_CALOAD, jbc_CASTORE, jbc_CHECKCAST, jbc_D2F, jbc_D2I, jbc_D2L, jbc_DADD, jbc_DALOAD, jbc_DASTORE, jbc_DCMPG, jbc_DCMPL, jbc_DCONST_0, jbc_DCONST_1, jbc_DDIV, jbc_DLOAD, jbc_DLOAD_0, jbc_DLOAD_1, jbc_DLOAD_2, jbc_DLOAD_3, jbc_DMUL, jbc_DNEG, jbc_DREM, jbc_DRETURN, jbc_DSTORE, jbc_DSTORE_0, jbc_DSTORE_1, jbc_DSTORE_2, jbc_DSTORE_3, jbc_DSUB, jbc_DUP, jbc_DUP_X1, jbc_DUP_X2, jbc_DUP2, jbc_DUP2_X1, jbc_DUP2_X2, jbc_F2D, jbc_F2I, jbc_F2L, jbc_FADD, jbc_FALOAD, jbc_FASTORE, jbc_FCMPG, jbc_FCMPL, jbc_FCONST_0, jbc_FCONST_1, jbc_FCONST_2, jbc_FDIV, jbc_FLOAD, jbc_FLOAD_0, jbc_FLOAD_1, jbc_FLOAD_2, jbc_FLOAD_3, jbc_FMUL, jbc_FNEG, jbc_FREM, jbc_FRETURN, jbc_FSTORE, jbc_FSTORE_0, jbc_FSTORE_1, jbc_FSTORE_2, jbc_FSTORE_3, jbc_FSUB, jbc_GETFIELD, jbc_GETSTATIC, jbc_GOTO, jbc_GOTO_W, jbc_I2B, jbc_I2C, jbc_I2D, jbc_I2F, jbc_I2L, jbc_I2S, jbc_IADD, jbc_IALOAD, jbc_IAND, jbc_IASTORE, jbc_ICONST_0, jbc_ICONST_1, jbc_ICONST_2, jbc_ICONST_3, jbc_ICONST_4, jbc_ICONST_5, jbc_ICONST_M1, jbc_IDIV, jbc_IF_ACMPEQ, jbc_IF_ACMPNE, jbc_IF_ICMPEQ, jbc_IF_ICMPGE, jbc_IF_ICMPGT, jbc_IF_ICMPLE, jbc_IF_ICMPLT, jbc_IF_ICMPNE, jbc_IFEQ, jbc_IFGE, jbc_IFGT, jbc_IFLE, jbc_IFLT, jbc_IFNE, jbc_IFNONNULL, jbc_IFNULL, jbc_IINC, jbc_ILOAD, jbc_ILOAD_0, jbc_ILOAD_1, jbc_ILOAD_2, jbc_ILOAD_3, jbc_IMUL, jbc_INEG, jbc_INSTANCEOF, jbc_INT2BYTE, jbc_INT2CHAR, jbc_INT2SHORT, jbc_INVOKEINTERFACE, jbc_INVOKENONVIRTUAL, jbc_INVOKESPECIAL, jbc_INVOKESTATIC, jbc_INVOKEVIRTUAL, jbc_IOR, jbc_IREM, jbc_IRETURN, jbc_ISHL, jbc_ISHR, jbc_ISTORE, jbc_ISTORE_0, jbc_ISTORE_1, jbc_ISTORE_2, jbc_ISTORE_3, jbc_ISUB, jbc_IUSHR, jbc_IXOR, jbc_JSR, jbc_JSR_W, jbc_L2D, jbc_L2F, jbc_L2I, jbc_LADD, jbc_LALOAD, jbc_LAND, jbc_LASTORE, jbc_LCMP, jbc_LCONST_0, jbc_LCONST_1, jbc_LDC, jbc_LDC_W, jbc_LDC2_W, jbc_LDIV, jbc_LLOAD, jbc_LLOAD_0, jbc_LLOAD_1, jbc_LLOAD_2, jbc_LLOAD_3, jbc_LMUL, jbc_LNEG, jbc_LOOKUPSWITCH, jbc_LOR, jbc_LREM, jbc_LRETURN, jbc_LSHL, jbc_LSHR, jbc_LSTORE, jbc_LSTORE_0, jbc_LSTORE_1, jbc_LSTORE_2, jbc_LSTORE_3, jbc_LSUB, jbc_LUSHR, jbc_LXOR, jbc_MONITORENTER, jbc_MONITOREXIT, jbc_MULTIANEWARRAY, jbc_NEW, jbc_NEWARRAY, jbc_NOP, jbc_POP, jbc_POP2, jbc_PUTFIELD, jbc_PUTSTATIC, jbc_RET, jbc_RETURN, jbc_SALOAD, jbc_SASTORE, jbc_SIPUSH, jbc_SWAP, jbc_TABLESWITCH, jbc_WIDE, NO_OF_OPERANDS, OPCODE_NAMES, PRODUCE_STACK, RESERVED, STATE_CLSINITERROR, STATE_CLSINITIALIZED, STATE_CLSINITIALIZING, STATE_CLSINITRUNNING, STATE_COMPILED, STATE_COMPILING, STATE_LOADED, STATE_LOADERROR, STATE_LOADING1, STATE_LOADING2, STATE_LOADING3, STATE_PREPARED, STATE_PREPARING, STATE_SFINITIALIZED, STATE_SFINITIALIZING, STATE_UNLOADED, STATE_VERIFIED, STATE_VERIFYING, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TC_ARRAY, TC_BOOLEAN, TC_BYTE, TC_CHAR, TC_CLASS, TC_CLASSEND, TC_DOUBLE, TC_FLOAT, TC_INT, TC_LONG, TC_PARAM, TC_PARAMEND, TC_SHORT, TC_VOID, TYPE_OF_OPERANDS, UNDEFINED, UNPREDICTABLE
 
Constructor Summary
HeapAllocator()
           
 
Method Summary
abstract  java.lang.Object allocateArray(int length, int size, java.lang.Object vtable)
          Allocate an array with the default alignment.
abstract  java.lang.Object allocateArrayAlign8(int length, int size, java.lang.Object vtable)
          Allocate an array such that the elements are 8-byte aligned.
abstract  java.lang.Object allocateObject(int size, java.lang.Object vtable)
          Allocate an object with the default alignment.
abstract  java.lang.Object allocateObjectAlign8(int size, java.lang.Object vtable)
          Allocate an object such that the first field is 8-byte aligned.
static java.lang.Object clone(java.lang.Object o)
          Clone the given object.
static java.lang.Object clsinitAndAllocateObject(Clazz.jq_Type t)
          Initialize class t and return a new uninitialized object of that type.
abstract  void collect()
          Initiate a garbage collection.
abstract  int freeMemory()
          Returns an estimate of the amount of free memory available.
static void heapExhausted(Memory.Heap.Heap heap, int size, int count)
          Handle heap exhaustion.
abstract  void init()
          Perform initialization for this allocator.
static void outOfMemory()
          Called in an out of memory situation.
abstract  void processPtrField(Memory.Address a)
          Process a reference to a heap object during garbage collection.
abstract  int totalMemory()
          Returns an estimate of the total memory allocated (both used and unused).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

isOutOfMemory

private static boolean isOutOfMemory

outofmemoryerror

private static final java.lang.OutOfMemoryError outofmemoryerror

_clsinitAndAllocateObject

public static final Clazz.jq_StaticMethod _clsinitAndAllocateObject
Constructor Detail

HeapAllocator

public HeapAllocator()
Method Detail

init

public abstract void init()
                   throws java.lang.OutOfMemoryError
Perform initialization for this allocator. This will be called before any other methods.


allocateObject

public abstract java.lang.Object allocateObject(int size,
                                                java.lang.Object vtable)
                                         throws java.lang.OutOfMemoryError
Allocate an object with the default alignment. If the object cannot be allocated due to lack of memory, throws OutOfMemoryError.


allocateObjectAlign8

public abstract java.lang.Object allocateObjectAlign8(int size,
                                                      java.lang.Object vtable)
                                               throws java.lang.OutOfMemoryError
Allocate an object such that the first field is 8-byte aligned. If the object cannot be allocated due to lack of memory, throws OutOfMemoryError.


allocateArray

public abstract java.lang.Object allocateArray(int length,
                                               int size,
                                               java.lang.Object vtable)
                                        throws java.lang.OutOfMemoryError,
                                               java.lang.NegativeArraySizeException
Allocate an array with the default alignment. If length is negative, throws NegativeArraySizeException. If the array cannot be allocated due to lack of memory, throws OutOfMemoryError.


allocateArrayAlign8

public abstract java.lang.Object allocateArrayAlign8(int length,
                                                     int size,
                                                     java.lang.Object vtable)
                                              throws java.lang.OutOfMemoryError,
                                                     java.lang.NegativeArraySizeException
Allocate an array such that the elements are 8-byte aligned. If length is negative, throws NegativeArraySizeException. If the array cannot be allocated due to lack of memory, throws OutOfMemoryError.


freeMemory

public abstract int freeMemory()
Returns an estimate of the amount of free memory available.


totalMemory

public abstract int totalMemory()
Returns an estimate of the total memory allocated (both used and unused).


collect

public abstract void collect()
Initiate a garbage collection.


processPtrField

public abstract void processPtrField(Memory.Address a)
Process a reference to a heap object during garbage collection.


clsinitAndAllocateObject

public static java.lang.Object clsinitAndAllocateObject(Clazz.jq_Type t)
                                                 throws java.lang.VerifyError
Initialize class t and return a new uninitialized object of that type. If t is not a class type, throw a VerifyError.


clone

public static java.lang.Object clone(java.lang.Object o)
                              throws java.lang.OutOfMemoryError
Clone the given object. NOTE: Does not check if the object implements Cloneable.


heapExhausted

public static void heapExhausted(Memory.Heap.Heap heap,
                                 int size,
                                 int count)
                          throws java.lang.OutOfMemoryError
Handle heap exhaustion.


outOfMemory

public static void outOfMemory()
                        throws java.lang.OutOfMemoryError
Called in an out of memory situation.