Esempio n. 1
0
 public ReferenceInfo(Component component)
 {
     this.weakReference = new System.WeakReference(component);
     this.typeName      = component.GetType().FullName;
     this.name          = component.name;
     this.stackTrace    = (new System.Diagnostics.StackTrace()).ToString();
 }
        public void DisposeTest()
        {
            // In .NET versions higher than 3.5, the parents dictionary is replaced with
            // ConditionalWeakTable, allowing tracked YAML nodes to be freed properly.
            var file = System.Reflection.Assembly.GetExecutingAssembly()
                       .GetManifestResourceStream("Evergine.Yaml.Tests.files.test4.yaml");

            var childrenAdded = 0;

            var tracker = new YamlNodeTracker();

            tracker.TrackerEvent += (sender, args) =>
            {
                if (args.EventType == TrackerEventType.MappingPairAdded ||
                    args.EventType == TrackerEventType.SequenceElementAdded ||
                    args.EventType == TrackerEventType.StreamDocumentAdded)
                {
                    childrenAdded++;
                }
            };

            var fileStream = new StreamReader(file);
            var stream     = YamlStream.Load(fileStream, tracker);

            var weakRef = new System.WeakReference(stream);

            stream = null;

            System.GC.Collect();
            System.GC.WaitForFullGCComplete();
            System.GC.WaitForPendingFinalizers();

            Assert.AreEqual(null, stream);
            Assert.IsFalse(weakRef.IsAlive);
        }
 static void Init_Panels()
 {
     inspectorPanelAnimFloat                    = new UnityEditor.AnimatedValues.AnimFloat(0);
     _inspectorPanelPreviousSelectionRef        = new System.WeakReference <IGraphElement>(null);
     GraphEditorUtility.onActiveElementChanged -= OnActiveElementChanged;
     GraphEditorUtility.onActiveElementChanged += OnActiveElementChanged;
 }
Esempio n. 4
0
            public void WithComplexProperty()
            {
                var x = new WithComplexProperty {
                    ComplexType = new ComplexType("a", 1)
                };
                var y = new WithComplexProperty {
                    ComplexType = new ComplexType("a", 1)
                };
                var changes  = new List <string>();
                var settings = PropertiesSettings.GetOrCreate();

                using (var tracker = Track.IsDirty(x, y, settings))
                {
                    tracker.PropertyChanged += (_, e) => changes.Add(e.PropertyName);
                    Assert.AreEqual(false, tracker.IsDirty);
                }

                x.ComplexType = new ComplexType("b", 2);
                CollectionAssert.IsEmpty(changes);

                var wrx  = new System.WeakReference(x);
                var wrxc = new System.WeakReference(x.ComplexType);
                var wry  = new System.WeakReference(y);
                var wryc = new System.WeakReference(y.ComplexType);

                x = null;
                y = null;
                System.GC.Collect();
                Assert.AreEqual(false, wrx.IsAlive);
                Assert.AreEqual(false, wrxc.IsAlive);
                Assert.AreEqual(false, wry.IsAlive);
                Assert.AreEqual(false, wryc.IsAlive);
            }
Esempio n. 5
0
 public bool IsAlive(float dt)
 {
     if (null != hardRef)
     {
         if (disposeTimeTicker > 0)
         {
             disposeTimeTicker -= dt;
         }
         else
         {
             if (null == weakRef)
             {
                 weakRef = new System.WeakReference(hardRef);
             }
             else
             {
                 weakRef.Target = hardRef;
             }
             hardRef = null;
         }
         return(true);
     }
     else
     {
         return(null != weakRef && null != weakRef.Target);
     }
 }
Esempio n. 6
0
            public void DoesNotLeakTrackedProperty()
            {
                var x = new WithComplexProperty {
                    ComplexType = new ComplexType("a", 1)
                };
                var y = new WithComplexProperty {
                    ComplexType = new ComplexType("a", 1)
                };

                using (var tracker = Track.IsDirty(x, y))
                {
                    Assert.AreEqual(false, tracker.IsDirty);

                    var weakReference = new System.WeakReference(x.ComplexType);
                    Assert.AreEqual(true, weakReference.IsAlive);
                    x.ComplexType = null;
                    System.GC.Collect();
                    Assert.AreEqual(false, weakReference.IsAlive);

                    weakReference.Target = y.ComplexType;
                    y.ComplexType        = null;
                    System.GC.Collect();
                    Assert.AreEqual(false, weakReference.IsAlive);
                }
            }
            public void WithComplexProperty()
            {
                var x = new WithComplexProperty { ComplexType = new ComplexType("a", 1) };
                var y = new WithComplexProperty { ComplexType = new ComplexType("a", 1) };
                var changes = new List<string>();
                var settings = PropertiesSettings.GetOrCreate();
                using (var tracker = Track.IsDirty(x, y, settings))
                {
                    tracker.PropertyChanged += (_, e) => changes.Add(e.PropertyName);
                    Assert.AreEqual(false, tracker.IsDirty);
                }

                x.ComplexType = new ComplexType("b", 2);
                CollectionAssert.IsEmpty(changes);

                var wrx = new System.WeakReference(x);
                var wrxc = new System.WeakReference(x.ComplexType);
                var wry = new System.WeakReference(y);
                var wryc = new System.WeakReference(y.ComplexType);
                x = null;
                y = null;
                System.GC.Collect();
                Assert.AreEqual(false, wrx.IsAlive);
                Assert.AreEqual(false, wrxc.IsAlive);
                Assert.AreEqual(false, wry.IsAlive);
                Assert.AreEqual(false, wryc.IsAlive);
            }
Esempio n. 8
0
        int SystemGC_m_GetGeneration_xlua_st_(RealStatePtr L, int gen_param_count)
        {
            ObjectTranslator translator = this;


            if (gen_param_count == 1 && translator.Assignable <object>(L, 1))
            {
                object _obj = translator.GetObject(L, 1, typeof(object));

                int gen_ret = System.GC.GetGeneration(_obj);
                LuaAPI.xlua_pushinteger(L, gen_ret);



                return(1);
            }
            if (gen_param_count == 1 && translator.Assignable <System.WeakReference>(L, 1))
            {
                System.WeakReference _wo = (System.WeakReference)translator.GetObject(L, 1, typeof(System.WeakReference));

                int gen_ret = System.GC.GetGeneration(_wo);
                LuaAPI.xlua_pushinteger(L, gen_ret);



                return(1);
            }


            return(LuaAPI.luaL_error(L, "invalid arguments to System.GC.GetGeneration!"));
        }
Esempio n. 9
0
        /// <summary>
        /// GTK-specific implementation.
        /// </summary>
        partial void OSCreateVisuals()
        {
            // TODO: This is wrong... ViewModel should not create the visual - it should be the other way around
            var view = new INTV.LtoFlash.View.MenuLayoutView(this);

            _visual = new System.WeakReference(view);
            OSInitializeVisual(view);
        }
Esempio n. 10
0
 public virtual void OnCreate(FragmentActivity context, GridView gridView, SelectedUriCollection mCollection, SelectionSpec selectionSpec)
 {
     mContext           = new System.WeakReference <Context>(context);
     mLoaderManager     = context.SupportLoaderManager;
     this.selectionSpec = selectionSpec;
     albumPhotoAdapter  = new PictureAdapter(context, null, mCollection);
     mCollection.Engine.Scrolling(gridView);
     gridView.Adapter = albumPhotoAdapter;
 }
Esempio n. 11
0
 protected override void Dispose(bool disposing)
 {
     if (disposing)
     {
         KeyPress   -= OnKeyPress;
         rendererRef = null;
     }
     base.Dispose(disposing);
 }
        internal void SetObjectToKeepAlive(object objectToKeepAlive, object objectToKeepAlive2)
        {
            m_objectToKeepAlive  = objectToKeepAlive;
            m_objectToKeepAlive2 = objectToKeepAlive2;
#if DEBUG
            m_weakRef  = new System.WeakReference(m_objectToKeepAlive);
            m_weakRef2 = new System.WeakReference(m_objectToKeepAlive);
#endif
        }
Esempio n. 13
0
        protected Buff(BuffCtrl buff_ctrl, BuffInfo buff_info, float lifeTime, uint layer, bool shiftExcept)
        {
            mkOwner       = buff_ctrl;
            m_TargetActor = new System.WeakReference(buff_ctrl.Owner);

            m_BuffId    = buff_info.buff_id;
            ShiftExcept = shiftExcept;
            Reset(buff_info, lifeTime, layer);
        }
Esempio n. 14
0
 public PickerEditText(Context context, IPickerRenderer pickerRenderer) : base(context)
 {
     Focusable   = true;
     Clickable   = true;
     InputType   = InputTypes.Null;
     KeyPress   += OnKeyPress;
     rendererRef = new System.WeakReference <IPickerRenderer>(pickerRenderer);
     SetOnClickListener(PickerListener.Instance);
 }
Esempio n. 15
0
                public SelectInfo(int uuid, GameObject selector, BattlefieldObject followed, int type)
                {
                    this.uuid     = uuid;
                    this.selector = selector;
                    this.followed = new System.WeakReference(followed);

                    constraint    = selector.GetComponent <BattlefiledUIConstraint>();
                    rectTransform = selector.GetComponent <RectTransform>();

                    this.type = type;

                    UpdatePostion(false);
                }
Esempio n. 16
0
        /// <inheritdoc/>
        public IEnumerable <ComponentVisual> GetVisuals()
        {
            // TODO: This is wrong... ViewModel should not create the visual - it should be the other way around
            if (_visual == null)
            {
                var view = OSInitializeVisual().AsType <RomListView>();
                _visual = new System.WeakReference(view);
            }
            RomListView romListView     = _visual.IsAlive ? _visual.Target as RomListView : null; // ugh... .NET 4.0 doesn't have better Generic version of WeakReference<T> :(
            var         componentVisual = new ComponentVisual(RomListView.Id, romListView, Resources.Strings.RomListSettingsPage_Title);

            yield return(componentVisual);
        }
        static public System.WeakReference GetMaterial(SpriteRenderMode rm, Texture tex)
        {
            int idx = rm == SpriteRenderMode.None ? 0 : (int)rm;
            SpriteRenderModeGroup group = renderModeGroup[idx];

            System.WeakReference ret = null;

            int id = tex == null ? 0 : tex.GetInstanceID();

            if (group != null)
            {
                if (group.setting.IsAlive)
                {
                    ret = group.materials[id] as System.WeakReference;
                    if (ret == null)
                    {
                        SpriteRenderModeSetting setting = group.setting.Target as SpriteRenderModeSetting;

                        Material mat = new Material(setting.shader);
                        mat.mainTexture = tex;

                        ret = new System.WeakReference(mat);
                        group.materials[id] = ret;
                        setting.materials.Add(ret);
                    }
                    else
                    {
                        if (!ret.IsAlive)
                        {
                            SpriteRenderModeSetting setting = group.setting.Target as SpriteRenderModeSetting;

                            Material mat = new Material(setting.shader);
                            mat.mainTexture = tex;

                            ret = new System.WeakReference(mat);
                            group.materials[id] = ret;
                            setting.materials.Add(ret);
                        }
                    }
                }
                else
                {
                    renderModeGroup[idx] = null;
                }
            }
            else
            {
                Debug.LogError("unknown RenderMode " + rm);
            }
            return(ret);
        }
Esempio n. 18
0
 public TrackingObject(Object obj, LoadedBundle loadedBundle)
 {
     if (s_WeakRefPool.Count > 0)
     {
         WeakRef        = s_WeakRefPool.Pop();
         WeakRef.Target = obj;
     }
     else
     {
         WeakRef = new System.WeakReference(obj);
     }
     Bundle   = loadedBundle;
     RefCount = 1;
 }
Esempio n. 19
0
        public static List <UIVertex> Get()
        {
            List <UIVertex> result = null;

            if (verticesBuffer != null)
            {
                result = verticesBuffer.Target as List <UIVertex>;
            }

            if (result == null)
            {
                result         = new List <UIVertex>();
                verticesBuffer = new System.WeakReference(result);
            }

            return(result);
        }
Esempio n. 20
0
 protected override bool ConnectEvent(object source, string eventName, string handlerName)
 {
     if (eventName == "ValueChanged" && handlerName == "BgR_ValueChanged")
     {
         System.WeakReference wr = new System.WeakReference(this);
         ((NumericUpDown)source).ValueChanged += (s, e) => { ((MainWindow)wr.Target).BgR_ValueChanged(s, e); };
         return(true);
     }
     if (eventName == "ValueChanged" && handlerName == "BgG_ValueChanged")
     {
         System.WeakReference wr = new System.WeakReference(this);
         ((NumericUpDown)source).ValueChanged += (s, e) => { ((MainWindow)wr.Target).BgG_ValueChanged(s, e); };
         return(true);
     }
     if (eventName == "ValueChanged" && handlerName == "BgB_ValueChanged")
     {
         System.WeakReference wr = new System.WeakReference(this);
         ((NumericUpDown)source).ValueChanged += (s, e) => { ((MainWindow)wr.Target).BgB_ValueChanged(s, e); };
         return(true);
     }
     if (eventName == "ValueChanged" && handlerName == "FgR_ValueChanged")
     {
         System.WeakReference wr = new System.WeakReference(this);
         ((NumericUpDown)source).ValueChanged += (s, e) => { ((MainWindow)wr.Target).FgR_ValueChanged(s, e); };
         return(true);
     }
     if (eventName == "ValueChanged" && handlerName == "FgG_ValueChanged")
     {
         System.WeakReference wr = new System.WeakReference(this);
         ((NumericUpDown)source).ValueChanged += (s, e) => { ((MainWindow)wr.Target).FgG_ValueChanged(s, e); };
         return(true);
     }
     if (eventName == "ValueChanged" && handlerName == "FgB_ValueChanged")
     {
         System.WeakReference wr = new System.WeakReference(this);
         ((NumericUpDown)source).ValueChanged += (s, e) => { ((MainWindow)wr.Target).FgB_ValueChanged(s, e); };
         return(true);
     }
     return(false);
 }
            public void ComplexType()
            {
                var x = new ComplexType("a", 1);
                var y = new ComplexType("a", 1);
                var changes = new List<string>();

                using (var tracker = Track.IsDirty(x, y))
                {
                    tracker.PropertyChanged += (_, e) => changes.Add(e.PropertyName);
                    Assert.AreEqual(false, tracker.IsDirty);
                }

                x.Value++;
                CollectionAssert.IsEmpty(changes);

                var wrx = new System.WeakReference(x);
                var wry = new System.WeakReference(y);
                x = null;
                y = null;
                System.GC.Collect();
                Assert.AreEqual(false, wrx.IsAlive);
                Assert.AreEqual(false, wry.IsAlive);
            }
Esempio n. 22
0
        static int _m_GetGeneration_xlua_st_(RealStatePtr L)
        {
            try {
                ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);



                int gen_param_count = LuaAPI.lua_gettop(L);

                if (gen_param_count == 1 && translator.Assignable <object>(L, 1))
                {
                    object _obj = translator.GetObject(L, 1, typeof(object));

                    int gen_ret = System.GC.GetGeneration(_obj);
                    LuaAPI.xlua_pushinteger(L, gen_ret);



                    return(1);
                }
                if (gen_param_count == 1 && translator.Assignable <System.WeakReference>(L, 1))
                {
                    System.WeakReference _wo = (System.WeakReference)translator.GetObject(L, 1, typeof(System.WeakReference));

                    int gen_ret = System.GC.GetGeneration(_wo);
                    LuaAPI.xlua_pushinteger(L, gen_ret);



                    return(1);
                }
            } catch (System.Exception gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + gen_e));
            }

            return(LuaAPI.luaL_error(L, "invalid arguments to System.GC.GetGeneration!"));
        }
Esempio n. 23
0
            public void ComplexType()
            {
                var x       = new ComplexType("a", 1);
                var y       = new ComplexType("a", 1);
                var changes = new List <string>();

                using (var tracker = Track.IsDirty(x, y))
                {
                    tracker.PropertyChanged += (_, e) => changes.Add(e.PropertyName);
                    Assert.AreEqual(false, tracker.IsDirty);
                }

                x.Value++;
                CollectionAssert.IsEmpty(changes);

                var wrx = new System.WeakReference(x);
                var wry = new System.WeakReference(y);

                x = null;
                y = null;
                System.GC.Collect();
                Assert.AreEqual(false, wrx.IsAlive);
                Assert.AreEqual(false, wry.IsAlive);
            }
 public ServiceConnection(IServiceConnectionCallback connectionCallback)
 {
     mConnectionCallback = new System.WeakReference <IServiceConnectionCallback>(connectionCallback);
 }
            public void DoesNotLeakTrackedProperty()
            {
                var x = new WithComplexProperty { ComplexType = new ComplexType("a", 1) };
                var y = new WithComplexProperty { ComplexType = new ComplexType("a", 1) };

                using (var tracker = Track.IsDirty(x, y))
                {
                    Assert.AreEqual(false, tracker.IsDirty);

                    var weakReference = new System.WeakReference(x.ComplexType);
                    Assert.AreEqual(true, weakReference.IsAlive);
                    x.ComplexType = null;
                    System.GC.Collect();
                    Assert.AreEqual(false, weakReference.IsAlive);

                    weakReference.Target = y.ComplexType;
                    y.ComplexType = null;
                    System.GC.Collect();
                    Assert.AreEqual(false, weakReference.IsAlive);
                }
            }
Esempio n. 26
0
 public CResource(object obj, IResourceLocation location)
 {
     m_Location  = location;
     m_Reference = new System.WeakReference(obj);
 }
Esempio n. 27
0
 public override void SetSource(RelayValueInputBase source)
 {
     _sourceInputUID = source != null ? source.UID : null;
     _sourceInputRef = new System.WeakReference <RelayValueInputBase>(source);
     GatherPorts();
 }
Esempio n. 28
0
 /// <summary>
 /// Sets the current session to the given one. </summary>
 /// <param name="session"> The current session. </param>
 public static void SetCurrentSession(CustomTabsSession session)
 {
     sCurrentSession = new System.WeakReference <CustomTabsSession>(session);
 }
 public void Setup(WindowObject obj)
 {
     this.rf = new System.WeakReference(obj);
 }
Esempio n. 30
0
 /**
  * Creates an OutputSurface using the current EGL context. Creates a Surface that can be
  * passed to MediaCodec.configure().
  */
 public OutputSurface()
 {
     weakParent = new System.WeakReference(this);
     setup();
 }
        static public System.WeakReference GetMaterial(SpriteRenderMode rm, Texture tex)
        {
            int idx = rm == SpriteRenderMode.None ? 0 : (int)rm;
            SpriteRenderModeGroup group = renderModeGroup[idx];
            System.WeakReference ret = null;

            int id = tex == null ? 0 : tex.GetInstanceID();

            if (group != null)
            {
                if (group.setting.IsAlive)
                {
                    ret = group.materials[id] as System.WeakReference;
                    if ( ret == null)
                    {
                        SpriteRenderModeSetting setting = group.setting.Target as SpriteRenderModeSetting;

                        Material mat = new Material(setting.shader);
                        mat.mainTexture = tex;

                        ret = new System.WeakReference(mat);
                        group.materials[id] = ret;
                        setting.materials.Add(ret);
                    }
                    else
                    {
                        if (!ret.IsAlive)
                        {
                            SpriteRenderModeSetting setting = group.setting.Target as SpriteRenderModeSetting;

                            Material mat = new Material(setting.shader);
                            mat.mainTexture = tex;

                            ret = new System.WeakReference(mat);
                            group.materials[id] = ret;
                            setting.materials.Add(ret);
                        }
                    }
                }
                else
                {
                    renderModeGroup[idx] = null;
                }
            }
            else
            {
                Debug.LogError("unknown RenderMode " + rm);
            }
            return ret;
        }
Esempio n. 32
0
 public static T GetSharedInstance <T>(ref System.WeakReference <T> weakReference, System.Func <T> factory) where T : class, System.IDisposable
 {
     throw null;
 }
Esempio n. 33
0
 public 数更新時引数(SharpDX.DXGI.SwapChain swapChain)
 {
     SwapChain = new System.WeakReference <SharpDX.DXGI.SwapChain>(swapChain);
 }
 //...
 public void SetFunction(CustomFunctionEvent func)
 {
     _sourceOutputUID   = func != null ? func.UID : null;
     _sourceFunctionRef = new System.WeakReference <CustomFunctionEvent>(func);
     GatherPorts();
 }