On ke, 2015-02-11 at 08:06 -0600, Denis Kenzior wrote: > Hi Patrik, > > > > > glib also crashed with this pattern. Or usually worked ok, as the > > removed/added item wasn't always the item used in foreach or the next > > item. Fixing this to allow any API call successfully work at any time > > requires quite some more work to be done, the above patch by Jukka was > > approximately the minimum needed for a remove to work at any one time. > > > > If you find a good way to fix this in the data structure, great. But > the current fix is not acceptable. We will not be iterating over the > _entire_ data structure twice. The foreach operation is already > expensive and too tempting to abuse. The patch would iterate the data structure twice only if user did modify the hash in the callback func. That is probably not very common case anyway. Jukka