I removed it->generation, sd->generation, it->walking, sd->walking
authorTae-Hwan Kim <the81.kim@samsung.com>
Mon, 15 Apr 2013 03:00:43 +0000 (12:00 +0900)
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>
Mon, 15 Apr 2013 03:00:43 +0000 (12:00 +0900)
commitcea8e755dbf9b062bb1e6d7a89fbf4c590b8f6b3
tree94ea11e96e1d86bfcc90c28d05543f03186adfab
parent452b3ec01d96ac147636f045fea3cc6082f2d732
I removed it->generation, sd->generation, it->walking, sd->walking
flags.
This flags was used for deferring deletion of genlist items.
After deferred, items can be cleanup when _item_select() is called.
This flags was used for preventing crash when subitems are deleted right
after one item is deleted.

But this made genlist code too complicated and could hide internal
issues. One of the issues is incorrect use of EINA_INSTLIST_FOREACH (or
forloop). Because sub items can be deleted when one item is deleted, I
used whlie loop and EINA_INLIST_CONTAINER_GET(sd->items->last, xx) and
not defer the deletion. This has no problem evenif inlist sd->items is
changed inside the while-loop.
src/lib/elm_genlist.c
src/lib/elm_widget_genlist.h