странная проблема в Release
От: _Claus_  
Дата: 31.01.12 12:12
Оценка:
пытаюсь протестировать 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 — чистая структура.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.