Exemplo n.º 1
0
        internal JniLocalHandle NewObjectArrayPtr(int len, JniGlobalHandle clazz, IJvmProxy init)
        {
            JniLocalHandle res = newObjectArray(envPtr, len, clazz, init == null ? JniGlobalHandle.Zero : init.JvmHandle);

            ExceptionTest();
            return(res);
        }
Exemplo n.º 2
0
        public JniLocalHandle GetObjectFieldPtr(IJvmProxy obj, FieldId fieldID)
        {
            JniLocalHandle res = getObjectField(envPtr, obj.JvmHandle, fieldID.native);

            ExceptionTest();
            return(res);
        }
Exemplo n.º 3
0
        public static Value ParStrongCp2J(IJvmProxy obj)
        {
            var res = new Value {
                _object = StrongCp2J(obj)
            };

            return(res);
        }
Exemplo n.º 4
0
 public JniLocalHandle CallObjectMethodPtr(IJvmProxy obj, MethodId methodIdNative, params Value[] args)
 {
     #if DEBUG
     if (Bridge.Setup.VeryVerbose)
     {
         Console.WriteLine("CallObjectMethodPtr : " + obj.GetType().FullName);
     }
     #endif
     JniLocalHandle res = callObjectMethod(envPtr, obj.JvmHandle, methodIdNative.native, args);
     ExceptionTest();
     return res;
 }
Exemplo n.º 5
0
        public JniLocalHandle CallObjectMethodPtr(IJvmProxy obj, MethodId methodIdNative, params Value[] args)
        {
#if DEBUG
            if (Bridge.Setup.VeryVerbose)
            {
                Console.WriteLine("CallObjectMethodPtr : " + obj.GetType().FullName);
            }
#endif
            JniLocalHandle res = callObjectMethod(envPtr, obj.JvmHandle, methodIdNative.native, args);
            ExceptionTest();
            return(res);
        }
Exemplo n.º 6
0
        private static long WrapJVM(IntPtr __envp, JniLocalHandle __class, JniLocalHandle obj)
        {
            JNIEnv env = JNIEnv.Wrap(__envp);

            try
            {
                Class          clazz    = env.GetObjectClass(obj);
                RegistryRecord record   = Registry.GetJVMRecord(clazz);
                IJvmProxy      clrProxy = record.CreateCLRProxy(env, obj);
                return(IntHandle.Alloc(clrProxy));
            }
            catch (Exception ex)
            {
                env.ThrowExisting(ex);
            }
            return(0);
        }
Exemplo n.º 7
0
        public static TRes StrongJ2CpDelegate <TRes>(JNIEnv env, JniLocalHandle obj)
            where TRes : class //Delegate
        {
#if DEBUG
            if (!typeof(Delegate).IsAssignableFrom(typeof(TRes)))
            {
                throw new ArgumentException("expected delegate");
            }
#endif
            if (JniHandle.IsNull(obj))
            {
                return(default(TRes));
            }
            object res = __IClrProxy.GetObject(env, obj);
            if (res == null)
            {
                //that's delegate implemented in Java
                RegistryRecord delRecord = Registry.GetCLRRecord(typeof(TRes));
                IJvmProxy      jvmProxy  = delRecord.CreateCLRProxy(env, obj);
                return((TRes)(object)Delegate.CreateDelegate(typeof(TRes), jvmProxy, delRecord.JVMDelegateInvoke));
            }
            return((TRes)res);
        }
Exemplo n.º 8
0
 public JniLocalHandle GetObjectFieldPtr(IJvmProxy obj, FieldId fieldID)
 {
     JniLocalHandle res = getObjectField(envPtr, obj.JvmHandle, fieldID.native);
     ExceptionTest();
     return res;
 }
Exemplo n.º 9
0
 internal JniLocalHandle NewObjectArrayPtr(int len, JniGlobalHandle clazz, IJvmProxy init)
 {
     JniLocalHandle res = newObjectArray(envPtr, len, clazz, init == null ? JniGlobalHandle.Zero : init.JvmHandle);
     ExceptionTest();
     return res;
 }
 public static Value ParStrongCp2J(IJvmProxy obj)
 {
     return Convertor.ParStrongCp2J(obj);
 }
Exemplo n.º 11
0
 public void SetObjectArrayElement(Object array, int index, IJvmProxy val)
 {
     SetObjectArrayElement(array, index, val == null ? JniGlobalHandle.Zero : val.JvmHandle);
 }
Exemplo n.º 12
0
 public Object NewObjectArray(int len, Class clazz, IJvmProxy init)
 {
     JniLocalHandle res = NewObjectArrayPtr(len, clazz.jvmHandle, init);
     return Convertor.StrongJ2CpObject(this, res);
 }