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)
- [Bug]: iOS BindCommand throws exception when executing on iPad (device) HOT 3
- ComboBox refresh issue HOT 5
- Changing a button's isEnabled property during click event is slower on Android HOT 6
- Bitmap has format null when created from Grayscale image
- Dynamically Generated MenuItem does not update `IsChecked` property of bound backing property.
- Main window buttons donβt appear maximized and with ExtendClientAreaToDecorationsHint HOT 1
- GestureRecognizers Additional Option HOT 1
- GetObservable couldn't subscrible event in UserControls HOT 1
- TrimMode=link, while not supported, still builds successfully, but crashes inconsistently HOT 9
- can't excute Task.Run,but I can do that with wpf HOT 2
- Mobile Text Selection Handles HOT 4
- Memory loss with Data Grid when updating ItemSource HOT 2
- Edit & Continue works worse on Avalonia than on other projects
- Backspace incorrectly places caret before linebreak when deleting the last character of a line
- Hidden close & resize buttons when ExtendClientAreaToDecorationsHint is True and WindowsState is Maximized HOT 4
- When using Vulkan rendering for Android, app presents black screen when resuming. HOT 3
- xpat template fire exception during run at android HOT 3
- FuncDataTemplate<T> issue with usercontrols HOT 7
- [Regression] Using DynamicResource in a ResourceDictionary throws XamlException HOT 2
- Upgrading to 11.1 breaks ClickOnce deployment
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.