Example #1
0
 internal void AnyTranslator(IntPtr isolate, ISetValueToJs setValueApi, IntPtr holder, object obj)
 {
     if (obj == null)
     {
         setValueApi.SetNull(isolate, holder);
     }
     else
     {
         Type realType = obj.GetType();
         if (realType == typeof(object))
         {
             int typeId   = typeRegister.GetTypeId(isolate, realType);
             int objectId = objectPool.FindOrAddObject(obj);
             setValueApi.SetObject(isolate, holder, typeId, new IntPtr(objectId));
         }
         else
         {
             GetTranslateFunc(realType)(isolate, setValueApi, holder, obj);
         }
     }
 }
Example #2
0
        void LoadType(IntPtr isolate, IntPtr info, IntPtr self, int paramLen)
        {
            try
            {
                Type type = GetTypeFromJs(isolate, info, self, paramLen);

                if (type != null)
                {
                    int typeId = TypeRegister.GetTypeId(isolate, type);
                    PuertsDLL.ReturnClass(isolate, info, typeId);
                }
            }
            catch (Exception e)
            {
                PuertsDLL.ThrowException(isolate, "loadClass throw c# exception:" + e.Message + ",stack:" + e.StackTrace);
            }
        }
Example #3
0
 //use by BlittableCopy
 public int GetTypeId(Type type)
 {
     return(TypeRegister.GetTypeId(isolate, type));
 }