예제 #1
0
 public static unsafe RuntimeTypeHandle get_TypeHandle(CosmosRuntimeType aThis)
 {
     fixed(uint *ptr = &aThis.mTypeId)                    // this has to actually stay fixed
     {
         return(CreateRuntimeTypeHandle((int)(uint)ptr)); // internally they do weird stuff and store the pointer as an int,
         //so we need to pass the pointer straight away
     }
 }
예제 #2
0
        public static Type GetTypeFromHandle(ulong aHandle)
        {
            uint  x       = (uint)(aHandle >> 32);
            uint *y       = (uint *)x;
            uint  xTypeId = *y;
            var   xType   = new CosmosRuntimeType(xTypeId);

            return(xType);
        }
예제 #3
0
 public static bool op_Inequality(CosmosRuntimeType aLeft, CosmosRuntimeType aRight)
 {
     if (aLeft is null)
     {
         return(!(aRight is null));
     }
     if (aRight is null)
     {
         return(true);
     }
     return(aLeft.mTypeId != aRight.mTypeId);
 }
예제 #4
0
 public static bool op_Equality(CosmosRuntimeType aLeft, CosmosRuntimeType aRight)
 {
     if (aLeft is null) //Compare with null without equality check, since that causes stack overflow
     {
         return(aRight is null);
     }
     if (aRight is null)
     {
         return(false);
     }
     return(aLeft.mTypeId == aRight.mTypeId);
 }
예제 #5
0
        public static bool op_Inequality(CosmosRuntimeType aLeft, CosmosRuntimeType aRight)
        {
            mDebugger.Send("Type.GetInequality");

            return(aLeft.mTypeId != aRight.mTypeId);
        }
예제 #6
0
 public static bool op_Equality(CosmosRuntimeType aLeft, CosmosRuntimeType aRight)
 {
     return(aLeft.mTypeId == aRight.mTypeId);
 }
예제 #7
0
 public static Type get_BaseType(CosmosRuntimeType aThis)
 {
     return(aThis.BaseType);
 }