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:
Allan Odgaard
2016-09-12 08:48:26 +02:00
parent 7b291185fe
commit 37943741ad

View File

@@ -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;