diff --git a/hydrus/core/HydrusData.py b/hydrus/core/HydrusData.py index ad0706d82..b344531e7 100644 --- a/hydrus/core/HydrusData.py +++ b/hydrus/core/HydrusData.py @@ -169,15 +169,23 @@ def __contains__( self, item ): def __delitem__( self, index ): - item = self._list[ index ] - del self._list[ index ] + # only clean state is when we take what is the last item _at this point in time_ + # previously this test was after the delete and it messed everything up hey + removing_last_item_in_list = index in ( -1, len( self._list ) - 1 ) - if item in self._items_to_indices: + if removing_last_item_in_list: - del self._items_to_indices[ item ] + item = self._list[ index ] + del self._list[ index ] - - if index not in ( -1, len( self._list ) - 1 ): + if item in self._items_to_indices: + + del self._items_to_indices[ item ] + + + else: + + del self._list[ index ] self._DirtyIndices() @@ -272,7 +280,7 @@ def extend( self, items ): self._list.extend( items ) - def index( self, item ): + def index( self, item, **kwargs ): """ This is fast! """