Revision 3c5acc6...
Go back to digest for 29th April 2012Bug Fixes in Office
Handle the situation where the ng iterators get an empty stretch
Assert in developer mode so we know where to add the check for emptiness
before creating the iterator; make the iterator check at least a pixel
in release mode.
We cannot re-instate the old isDone() api because that would impair
performance too much:
13:26:45 < boud> CyrilleB: do you remember why the NG iterators don't have an isDone() check so the loop always checks at least once? (with do {} while
(it-NextPixel())
13:45:34 < CyrilleB> boud: performance
13:46:13 < CyrilleB> boud: especially since in 99.99% of the case, one does have something to iterate over
13:50:34 < boud> aah
13:50:49 < boud> because it's the reason of the crash in KisSelection::invert
13:52:29 < boud> maybe if the rect is empty we should make it have a width/height of one so there's always one pixel read in all cases
13:53:04 < CyrilleB> or rather have an assert if you try to create an iterator with a null width/height
13:53:20 < CyrilleB> (or both, if you want to ensure good behaviour for users)
it goes wrong
13:53:35 < CyrilleB> s/good behaviour/non crashing behaviour/
File Changes
- /image/tiles3
- krita/kis_hline_iterator.cpp
- krita/kis_rect_iterator.cpp
- krita/kis_vline_iterator.cpp