winpr: ObjectPool_Return: fix error handling
authorkubistika <kmizrachi18@gmail.com>
Thu, 11 Jul 2019 19:13:19 +0000 (22:13 +0300)
committerakallabeth <akallabeth@users.noreply.github.com>
Thu, 11 Jul 2019 19:31:47 +0000 (21:31 +0200)
winpr/libwinpr/utils/collections/ObjectPool.c

index 1a4ca05..f31f17d 100644 (file)
@@ -80,7 +80,8 @@ void ObjectPool_Return(wObjectPool* pool, void* obj)
                new_cap = pool->capacity * 2;
                new_arr = (void**) realloc(pool->array, sizeof(void*) * new_cap);
                if (!new_arr)
-                       return;
+                       goto out;
+
                pool->array = new_arr;
                pool->capacity = new_cap;
        }
@@ -90,6 +91,7 @@ void ObjectPool_Return(wObjectPool* pool, void* obj)
        if (pool->object.fnObjectUninit)
                pool->object.fnObjectUninit(obj);
 
+out:
        if (pool->synchronized)
                LeaveCriticalSection(&pool->lock);
 }