diff --git a/ChangeLog b/ChangeLog index 9620adb..54ecfb9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2023-01-25 Wolfgang Lux + + * GSCache.m: Remove erroneous unlock in exception handler. + 2023-01-20 Richard Frith-Macdonald * GSLinkedList.h: The produce and consume functins of a link store diff --git a/GSCache.m b/GSCache.m index e17d04c..8ef94df 100644 --- a/GSCache.m +++ b/GSCache.m @@ -348,21 +348,12 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first) GSCacheItem *orig = [item retain]; [my->lock unlock]; - NS_DURING - { - keep = (*(my->replace))(my->delegate, - @selector(shouldKeepItem:withKey:lifetime:after:), - item->object, - aKey, - item->life, - when - item->when); - } - NS_HANDLER - { - [my->lock unlock]; - [localException raise]; - } - NS_ENDHANDLER + keep = (*(my->replace))(my->delegate, + @selector(shouldKeepItem:withKey:lifetime:after:), + item->object, + aKey, + item->life, + when - item->when); [my->lock lock]; if (keep == YES) { @@ -424,21 +415,12 @@ static void removeItem(GSCacheItem *item, GSCacheItem **first) GSCacheItem *current; [my->lock unlock]; - NS_DURING - { - (*(my->refresh))(my->delegate, - @selector(mayRefreshItem:withKey:lifetime:after:), - item->object, - aKey, - item->life, - when - item->when); - } - NS_HANDLER - { - [my->lock unlock]; - [localException raise]; - } - NS_ENDHANDLER + (*(my->refresh))(my->delegate, + @selector(mayRefreshItem:withKey:lifetime:after:), + item->object, + aKey, + item->life, + when - item->when); [my->lock lock]; /* Refetch in case delegate changed it.