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; }
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); }
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); } }
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); }
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!")); }
/// <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); }
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; }
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 }
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); }
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); }
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); }
/// <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); }
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; }
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); }
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); }
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!")); }
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 CResource(object obj, IResourceLocation location) { m_Location = location; m_Reference = new System.WeakReference(obj); }
public override void SetSource(RelayValueInputBase source) { _sourceInputUID = source != null ? source.UID : null; _sourceInputRef = new System.WeakReference <RelayValueInputBase>(source); GatherPorts(); }
/// <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); }
/** * 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; }
public static T GetSharedInstance <T>(ref System.WeakReference <T> weakReference, System.Func <T> factory) where T : class, System.IDisposable { throw null; }
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(); }