Exemplo n.º 1
0
        internal IJvmProxy CopyCLRProxy(JNIEnv env, JniGlobalHandle obj)
        {
            IJvmProxy proxy = CLRConstructor.CreateProxy(env);

            proxy.Copy(env, obj);
            return(proxy);
        }
Exemplo n.º 2
0
        internal IJvmProxy CreateCLRProxyNoDelete(JNIEnv env, JniLocalHandle obj)
        {
            IJvmProxy proxy = CLRConstructor.CreateProxy(env);

            proxy.InitNoDelete(env, obj);
            return(proxy);
        }
Exemplo n.º 3
0
        private void CheckInitMethods()
        {
            if (isMethodsInit)
            {
                return;
            }
            lock (Environment)
            {
                if (isMethodsInit)
                {
                    return;
                }

                methods      = new Dictionary <string, FastList <CLRGeneralMethod> >();
                idToMethhods = new Dictionary <int, CLRGeneralMethod>();

                var clrMethods = typeForCLR.GetMethods();
                foreach (var clrMethod in clrMethods)
                {
                    FastList <CLRGeneralMethod> list;
                    if (!methods.TryGetValue(clrMethod.Name, out list))
                    {
                        list = new FastList <CLRGeneralMethod>();
                        methods.Add(clrMethod.Name, list);
                    }

                    var method = new CLRMethod(clrMethod, this);
                    list.Add(method);
                    idToMethhods.Add(method.GetHashCode(), method);
                }

                {
                    var list = new FastList <CLRGeneralMethod>();
                    methods.Add(ILMethod.ConstructorName, list);
                    foreach (var constructor in typeForCLR.GetConstructors())
                    {
                        var method = new CLRConstructor(constructor, this);
                        list.Add(method);
                        idToMethhods.Add(method.GetHashCode(), method);
                    }
                }

                foreach (var list in methods.Values)
                {
                    list.Trim();
                }

                isMethodsInit = true;
            }
        }