Release SyncFileItem objects with their job
authorJocelyn Turcotte <jturcotte@woboq.com>
Wed, 25 Jan 2017 10:28:18 +0000 (11:28 +0100)
committerJocelyn Turcotte <jturcotte@woboq.com>
Wed, 25 Jan 2017 22:26:23 +0000 (23:26 +0100)
commitee211d76093eeb19e556e01c6917d58025d53f97
tree957c179c66a8da937a59b0bc11658e02429ca00c
parent1fc5a76622c7e1811c296c9550884cf124f3e864
Release SyncFileItem objects with their job

We now delete subjobs as their propagation is complete. This allows us
to also release the item by making sure that nothing else is holding a
reference to it.

Remove the stored SyncFileItemVector from SyncEngine and SyncResult
and instead gather the needed info progressively as each itemCompleted
signal is emitted.

This frees some holes on the heap as propagation goes, allowing many
memory allocations without the need of requesting more virtual memory
from the OS, preventing the memory usage from increasingly growing.
src/gui/folder.cpp
src/gui/folder.h
src/gui/folderman.cpp
src/gui/folderman.h
src/gui/folderstatusmodel.cpp
src/libsync/syncengine.cpp
src/libsync/syncengine.h
src/libsync/syncresult.cpp
src/libsync/syncresult.h