]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.3' into PHP-7.4
authorNikita Popov <nikita.ppv@gmail.com>
Mon, 18 Mar 2019 09:04:59 +0000 (10:04 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 18 Mar 2019 09:04:59 +0000 (10:04 +0100)
1  2 
Zend/zend_globals.h
Zend/zend_objects_API.c

Simple merge
index 9a55b7d153ad34de44a1a483273fb993517c6f0c,c5ac9708e5a49f8a7341fe0cc79209eb049c470f..7c5d44a502b8069530dd9f203d3e34a4cf87d8d8
@@@ -140,16 -132,19 +141,16 @@@ ZEND_API void ZEND_FASTCALL zend_object
  {
        int handle;
  
-       /* When in shutdown sequesnce - do not reuse previously freed handles, to make sure
+       /* When in shutdown sequence - 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(objects_store).free_list_head != -1 && EXPECTED(!(EG(flags) & EG_FLAGS_IN_SHUTDOWN))) {
+       if (EG(objects_store).free_list_head != -1 && EXPECTED(!(EG(flags) & EG_FLAGS_OBJECT_STORE_NO_REUSE))) {
                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 (UNEXPECTED(EG(objects_store).top == EG(objects_store).size)) {
 +              zend_objects_store_put_cold(object);
 +              return;
        } else {
 -              if (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 */
 -                      EG(objects_store).size = new_size;
 -              }
                handle = EG(objects_store).top++;
        }
        object->handle = handle;