com php-src: Merge branch 'PHP-7.3' into PHP-7.4: Zend/zend_g lobals.h Zend/zend_objects_API.c
| From: | Nikita Popov | Date: | Mon, 18 Mar 2019 09:04:59 +0000 |
| Subject: | com php-src: Merge branch 'PHP-7.3' into PHP-7.4: Zend/zend_g lobals.h Zend/zend_objects_API.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-105192@lists.php.net to get a copy of this message | ||
Commit: 51ed4a8d8f0e50a182c3697df8242356f80dd460
Author: Nikita Popov <nikita.ppv@gmail.com> Mon, 18 Mar 2019 10:04:59 +0100
Parents: 4b081c27836d5e0a76dc66f9063cb3016de5d559 61eebb559e6c473aaee91a545c14134969752783
Branches: PHP-7.4 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=51ed4a8d8f0e50a182c3697df8242356f80dd460
Log:
Merge branch 'PHP-7.3' into PHP-7.4
Changed paths:
MM Zend/zend_globals.h
MM Zend/zend_objects_API.c
Diff:
diff --cc Zend/zend_objects_API.c
index 9a55b7d,c5ac970..7c5d44a
--- a/Zend/zend_objects_API.c
+++ b/Zend/zend_objects_API.c
@@@ -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;