php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | |
Patch gc-closure.diff for Performance problem Bug #60139Patch version 2011-10-31 11:04 UTC Return to Bug #60139 | Download this patchThis patch renders other patches obsolete Obsolete patches: Patch Revisions: 2011-10-31 11:04 UTC | 2011-10-31 08:44 UTCDeveloper: dmitry@php.net- return; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return; + } + p = func->op_array.static_variables->pListHead; + } else { - return; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return; + } + p = func->op_array.static_variables->pListHead; + } else { - return; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return; + } + p = func->op_array.static_variables->pListHead; + } else { - return; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return; + } + p = func->op_array.static_variables->pListHead; + } else { - return 0; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return 0; + } + p = func->op_array.static_variables->pListHead; + } else { - return; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return; + } + p = func->op_array.static_variables->pListHead; + } else { - return; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return; + } + p = func->op_array.static_variables->pListHead; + } else { - return; + if (Z_OBJCE_P(pz) == zend_ce_closure) { + const zend_function *func = zend_get_closure_method_def(pz TSRMLS_CC); + + if (!func->op_array.static_variables) { + if (func->type != ZEND_USER_FUNCTION || !func->op_array.static_variables) { + return; + } + p = func->op_array.static_variables->pListHead; + } else { + if (GC_ZVAL_GET_COLOR(pz) != GC_BLACK) { + zval_scan_black(pz TSRMLS_CC); + } + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; + if (GC_ZVAL_GET_COLOR(pz) != GC_BLACK) { + zval_scan_black(pz TSRMLS_CC); + } + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; + if (pz) { + pz->refcount__gc--; + zval_mark_grey(pz TSRMLS_CC); + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; + if (pz) { + pz->refcount__gc--; + zval_mark_grey(pz TSRMLS_CC); + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; + pz = zend_get_closure_this_ptr(pz TSRMLS_CC); + if (pz) { + zval_scan(pz TSRMLS_CC); + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; + pz = zend_get_closure_this_ptr(pz TSRMLS_CC); + if (pz) { + zval_scan(pz TSRMLS_CC); + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; + if (zv) { + zv->refcount__gc++; + zval_collect_white(zv TSRMLS_CC); + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; + if (pz) { + pz->refcount__gc++; + zval_collect_white(pz TSRMLS_CC); + } + if (func->op_array.static_variables) { + if (func->type == ZEND_USER_FUNCTION && func->op_array.static_variables) { + p = func->op_array.static_variables->pListHead; + } + } else if (!zobj->properties) { int i; |
Copyright © 2001-2024 The PHP Group All rights reserved. |
Last updated: Sun Oct 13 16:01:27 2024 UTC |