]> granicus.if.org Git - php/commitdiff
Reorder conditions and set expectation.
authorDmitry Stogov <dmitry@zend.com>
Tue, 6 Nov 2018 19:37:04 +0000 (22:37 +0300)
committerDmitry Stogov <dmitry@zend.com>
Tue, 6 Nov 2018 19:37:04 +0000 (22:37 +0300)
Zend/zend_objects_API.c

index d82eea59c50f0fb9c00fb06bb0498ee180cd5f92..b3e4356a2caf9cc92e90f5d50e9458abff275ff8 100644 (file)
@@ -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 */