Comments (8)
After a little researche, I found that subscription is cached in _innerSerialDisposable
field of class Switch<T>._
. When MenuItem
is added or removed, VisualParentProperty
of it changes. Each change of property calls OnNext
method of Switch<T>._
. Each call creates new instance of InnerObserver
and stores it in _innerSerialDisposable
, but do nothing with old value. I just simply added _innerSerialDisposable.Dispose
call befo setting new value, and now memory leak is gone.
public override void OnNext(IObservable<TSource> value)
{
ulong id;
lock (_gate)
{
id = unchecked(++_latest);
_hasLatest = true;
}
var innerObserver = new InnerObserver(this, id);
_innerSerialDisposable?.Dispose(); // <== Added Dispose call before setting new value.
_innerSerialDisposable = innerObserver;
innerObserver.Disposable = value.Subscribe(innerObserver);
}
from avalonia.
@ds1709 probably worth to file a PR
from avalonia.
@timunie I need this fix in version 11.0.*. So, do I need to create two PR, one in branch 11.0 and another in develop?
from avalonia.
@ds1709 for 11.0 this requires probably a support agreement as we are only backporting for upcomming 11.1 at this point of time.
from avalonia.
@timunie is there any problem with support 11.0 version? This fix is not complex, so release 11.0.11 should be easy.
from avalonia.
Limited resources. Nothing else.
from avalonia.
Is there any chance to get this fix in version 11.0? And another question, when is it planned to release version 11.1 (no beta)? According to the commot graph, there are a big amount of improvements from release 11.1.0-beta2. Same for 11.0.10, there are improvements, that wasn't released.
from avalonia.
- You can request 11.0 backports if you have paid support. Reach out via website if you are interested in general
- 11.0.10 is actually relesed. You may need to pull templates again
- 11.1 should drop soonish if there's no regression found while rc testings. No actual due date
Thanks for your understanding
from avalonia.
Related Issues (20)
- "Call from invalid thread" process crash after tray icon menu item is invoked HOT 5
- Browser mvvm error HOT 4
- Setting `FontSize` = 0 crashes the previewer in VS 2022
- Possibly wrong pattern match in `VirtualizingStackPanel.GetControl` HOT 3
- A Fullscreen window that is returned to WindowState.Normal or Maximized when ExtendClientAreaToDecorationsHint="True" will move up and to the left slightly
- Numeric access keys not working HOT 1
- ListBox do not change selected item then PageUp/PageDn keys used HOT 3
- Infinite IterationCount does not apply with DelayBetweenIterations
- Prefer always adding the `attachDevTools` parameter in generated `InitializeComponent` of a `Window` HOT 5
- DevTools Tree Jumps HOT 4
- [FEATURE] ComboBox support for multiple selection mode (Dropdown/Select) HOT 2
- the ItemsControl elements leave when the window opens WindowState="FullScreen" HOT 3
- Memory leak on Popup with ItemsControl and UserControl with empty Binding
- Can we get an offical FlatLaf dark theme port for avalonia ui? HOT 4
- :loaded PseudoClass for initial transitions HOT 2
- Stuck due to Android soft keyboard HOT 7
- The text display is offset upwards in the Ubuntu system HOT 4
- AffectsRender<TVisual> only seems to work with properties defined in TVisual class HOT 1
- Transitions on some StyledProperties fail to trigger after running once
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from avalonia.