diff options
| author | Neil Hodgson <nyamatongwe@gmail.com> | 2015-10-26 16:14:17 +1100 |
|---|---|---|
| committer | Neil Hodgson <nyamatongwe@gmail.com> | 2015-10-26 16:14:17 +1100 |
| commit | a964ac27c1ecb76cdbf09b0b2f386466285533c2 (patch) | |
| tree | 07360b41ed3216d1e3e252b68b6f64f65510d0ee | |
| parent | ece8393319c2d51477768224853715cc5ea4b62c (diff) | |
| download | scintilla-mirror-a964ac27c1ecb76cdbf09b0b2f386466285533c2.tar.gz | |
Avoid possibility of ScintillaCocoa receiving idles after deallocation by severing the
connection from TimerTarget back to ScintillaCocoa and releasing the notification queue.
| -rw-r--r-- | cocoa/ScintillaCocoa.mm | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/cocoa/ScintillaCocoa.mm b/cocoa/ScintillaCocoa.mm index 9cb48e5c8..31538aea4 100644 --- a/cocoa/ScintillaCocoa.mm +++ b/cocoa/ScintillaCocoa.mm @@ -334,6 +334,18 @@ const CGFloat paddingHighlightY = 2; //-------------------------------------------------------------------------------------------------- /** + * Method called by owning ScintillaCocoa object when it is destroyed. + */ +- (void) ownerDestroyed +{ + mTarget = NULL; + [notificationQueue release]; + notificationQueue = nil; +} + +//-------------------------------------------------------------------------------------------------- + +/** * Method called by a timer installed by ScintillaCocoa. This two step approach is needed because * a native Obj-C class is required as target for the timer. */ @@ -408,6 +420,7 @@ ScintillaCocoa::ScintillaCocoa(SCIContentView* view, SCIMarginView* viewMargin) ScintillaCocoa::~ScintillaCocoa() { Finalise(); + [timerTarget ownerDestroyed]; [timerTarget release]; } |
