mirror of
https://github.com/textmate/textmate.git
synced 2026-04-28 03:00:34 -04:00
Fix potential retain cycle
This would happen when creating a document with content and never opening and closing that document, so our buffer would never be deleted (previously deleted when closing a document), and the buffer callback previously held a strong reference to our document.
This commit is contained in:
@@ -402,6 +402,7 @@ private:
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[self deleteBuffer];
|
||||
[self removeBackup];
|
||||
}
|
||||
|
||||
@@ -1014,7 +1015,6 @@ private:
|
||||
self.revision = _savedRevision; // Clears isDocumentEdited
|
||||
[self removeBackup];
|
||||
|
||||
_undoManager.reset();
|
||||
[self deleteBuffer];
|
||||
}
|
||||
|
||||
@@ -1060,7 +1060,7 @@ private:
|
||||
}
|
||||
|
||||
size_t _size = 0;
|
||||
OakDocument* _self;
|
||||
__weak OakDocument* _self;
|
||||
|
||||
bool _should_sniff_file_type;
|
||||
std::string _file_type;
|
||||
@@ -1074,6 +1074,7 @@ private:
|
||||
|
||||
- (void)deleteBuffer
|
||||
{
|
||||
_undoManager.reset();
|
||||
if(!_buffer)
|
||||
return;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user