пытаюсь протестировать Release версию своей либы, и получаю неадекватное исключение.
код
public calc_alloc[T]() : int
def delta = root.d_new
root.d_new += Memblock.Create.[T](1).size //exception: Null Reference
delta
описание Мемblock
public struct Memblock
static public delta : int = Marshal.SizeOf(typeof(Memblock))
static public Create[T](count: int) : Memblock
Memblock(count * SizeOf.[T]())
static public Create[T]() : Memblock
Memblock(SizeOf.[T]())
static public SizeOf[T]() : int
/*Marshal.Size(char) == 2 for russian letters and
generic type has to be calculating*/
def type = typeof(T)
if (type.Equals(typeof(char)))
2
else
if (type.IsGenericType)
Marshal.SizeOf(default(T))
else
Marshal.SizeOf(type)
length: int
this(len : int)
length = len
в общем это структура безо всяких указателей. откуда оно нашло Null Reference — мне сильно непонятно.
Debug — все ок. в момент исключения T — чистая структура.