Hi, all!<br><br>Today I was fixing clear() memory leak that Lukas has reported recently. I faced with the following problem:<br><br>For fixing the leak, i have to add some code for KisMementoManager, but this can make creation/deletion of new tiles up to 20% slowlier.<br>
What does this affect:<br>1) The beginning of a painting transaction<br>2) The clear() call and the painting right ofter this, thought clear() is still much faster than direct painting.<br>The most pity point:<br>3) As all the devices have versioning turned on by default, then all the devices would suffer.<br>
<br>I'm going to investigate how to eliminate this extra code, but i still wonder how many devices in Krita really need versioning? In other words how many devices need transactions and oldData functionality. I can remember the following usecase:<br>
<br>1) Filter application code. Classes: KisAsyncMerger, KisFilterMask, KisAdjustmentLayer (thought masks and adj. layers maybe should avoid creation their own transactions)<br>2) KisToolFreehand<br><br>Who else needs them?<br clear="all">
<br>-- <br>Dmitry Kazakov<br>