From c994d90db27ccc36caef32a3abe1ade6e8289ce1 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 6 Nov 2018 22:37:04 +0300 Subject: [PATCH] Reorder conditions and set expectation. --- Zend/zend_objects_API.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index d82eea59c50..b3e4356a2ca 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -131,11 +131,11 @@ ZEND_API void ZEND_FASTCALL zend_objects_store_put(zend_object *object) /* When in shutdown sequesnce - do not reuse previously freed handles, to make sure * the dtors for newly created objects are called in zend_objects_store_call_destructors() loop */ - if (!(EG(flags) & EG_FLAGS_IN_SHUTDOWN) && EG(objects_store).free_list_head != -1) { + if (EG(objects_store).free_list_head != -1 && EXPECTED(!(EG(flags) & EG_FLAGS_IN_SHUTDOWN))) { handle = EG(objects_store).free_list_head; EG(objects_store).free_list_head = GET_OBJ_BUCKET_NUMBER(EG(objects_store).object_buckets[handle]); } else { - if (EG(objects_store).top == EG(objects_store).size) { + if (UNEXPECTED(EG(objects_store).top == EG(objects_store).size)) { uint32_t new_size = 2 * EG(objects_store).size; EG(objects_store).object_buckets = (zend_object **) erealloc(EG(objects_store).object_buckets, new_size * sizeof(zend_object*)); /* Assign size after realloc, in case it fails */