Пример #1
0
        public static void class_finalizer(JSRuntime rt, JSValue val)
        {
            var runtime = ScriptEngine.GetRuntime(rt);
            var header  = JSApi.JSB_FreePayloadRT(rt, val);

            if (header.type_id == BridgeObjectType.ObjectRef)
            {
                var objectCache = runtime.GetObjectCache();

                if (objectCache != null)
                {
                    object obj;
                    try
                    {
                        objectCache.RemoveObject(header.value, out obj);
                    }
                    catch (Exception exception)
                    {
                        runtime.GetLogger()?.WriteException(exception);
                    }
                }
            }
        }
Пример #2
0
        public static void class_finalizer(JSRuntime rt, JSValue val)
        {
            var runtime = ScriptEngine.GetRuntime(rt);
            var header  = JSApi.JSB_FreePayloadRT(rt, val);

            if (header.type_id == BridgeObjectType.ObjectRef)
            {
                var objectCache = runtime.GetObjectCache();

                if (objectCache != null)
                {
                    object obj;
                    if (objectCache.RemoveObject(header.value, out obj))
                    {
                        var jsf = obj as IScriptFinalize;
                        if (jsf != null)
                        {
                            jsf.OnJSFinalize();
                        }
                    }
                }
            }
        }