internal static Array AllocateArray(VTable vtable, int rank, int totalElements, Thread currentThread) { VTable.Deny(Transitions.UnderGCControl(currentThread.threadIndex)); return(installedGC.AllocateArray(vtable, rank, totalElements, currentThread)); }
internal static Array AllocateVector(VTable vtable, int numElements, Thread currentThread) { VTable.Deny(Transitions.UnderGCControl(currentThread.threadIndex)); return(installedGC.AllocateVector(vtable, numElements, currentThread)); }
internal static Object AllocateObject(VTable vtable, UIntPtr numBytes, uint baseAlignment, Thread currentThread) { VTable.Deny(Transitions.UnderGCControl(currentThread.threadIndex)); return(installedGC.AllocateObject(vtable, numBytes, baseAlignment, currentThread)); }
internal unsafe bool GcMark(UIntPtr flag) { UIntPtr *loc = this.VTableFieldAddr; UIntPtr val = *loc; VTable.Deny(val == UIntPtr.Zero); if ((val & (UIntPtr)3) != flag) { *loc = (val & ~(UIntPtr)3) + flag; return(true); } return(false); }
internal static String AllocateString(int stringLength, Thread currentThread) { VTable.Deny(Transitions.UnderGCControl(currentThread.threadIndex)); return(installedGC.AllocateString(stringLength, currentThread)); }
internal static Object AllocateObject(VTable vtable, Thread currentThread) { VTable.Deny(Transitions.UnderGCControl(currentThread.threadIndex)); return(installedGC.AllocateObject(vtable, currentThread)); }