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)
- EagerParentStackEnumerator is incompatible with XAML built with older avalonia versions HOT 2
- DataGridCollectionView with Filter items dissapear or duplicate
- DataGridTextColumn IsReadOnly will be True after AOT HOT 2
- CustomDrawOperation.Render won't be called if only drawingContext.Custom is present in override Render method HOT 1
- Showing Window from WinForms app doesn't allow text input HOT 3
- Regression in 11.1 Beta2 and RC1 concerning EmbeddableControlRoot's EmbeddableWindow implementation on Windows HOT 5
- PointerTouchPadGestureSwipe not work in macos
- AvaloniaResource inclusion results in erroneous embedding when resources are outside of project folder HOT 2
- Changing the resolution of headless rendering
- D3D11CreateDevice+Hardware crashes and fallback doesn't work HOT 1
- Android SystemBar Icons theme (Light, Dark) in 11.1.0-rc1
- IsHitTestVisible set to false on parent element ignores IsHitTestVisible set to true for child elements
- NullReferenceException in Avalonia.Skia when creating a new Bitmap HOT 2
- Regression in 11.1: MultiValueConverter returning BindingNotification throws InvalidCastException HOT 3
- Behaviour of !! operator has changed in 11.1 HOT 5
- Tab Key Navigation not working when OverlayPopups is set to true
- System.InvalidOperationException: Neither DBus nor GTK are available on the system HOT 3
- Change in MultiBinding behaviour in 11.1.0-rc1 compared to 11.0.11 HOT 2
- TrayIcon becomes unresponsive
- ListBox highlights the wrong item after adding to a sorted Realm-bound ItemsSource HOT 4
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.