diff options
| author | Remi Collet <remi@remirepo.net> | 2017-06-23 17:01:20 +0200 | 
|---|---|---|
| committer | Remi Collet <remi@remirepo.net> | 2017-06-23 17:01:20 +0200 | 
| commit | 960f248dade4ee729d4f35ee6e242ebf2f11e591 (patch) | |
| tree | 9d70ca9e9748cfb4caaf7629238c58a21a142172 | |
| parent | 6236aac37a962b6f3d033d711011cdb2125ab310 (diff) | |
cleanup
| -rw-r--r-- | REFLECTION-PHP7 | 56 | ||||
| -rw-r--r-- | php-pecl-uopz-php7.spec | 325 | ||||
| -rw-r--r-- | uopz-upstream.patch | 226 | 
3 files changed, 0 insertions, 607 deletions
diff --git a/REFLECTION-PHP7 b/REFLECTION-PHP7 deleted file mode 100644 index 69196ce..0000000 --- a/REFLECTION-PHP7 +++ /dev/null @@ -1,56 +0,0 @@ -Extension [ <persistent> extension #15 uopz version 5.0.1 ] { - -  - Constants [7] { -    Constant [ integer ZEND_ACC_PUBLIC ] { 256 } -    Constant [ integer ZEND_ACC_PRIVATE ] { 1024 } -    Constant [ integer ZEND_ACC_PROTECTED ] { 512 } -    Constant [ integer ZEND_ACC_PPP_MASK ] { 1792 } -    Constant [ integer ZEND_ACC_STATIC ] { 1 } -    Constant [ integer ZEND_ACC_FINAL ] { 4 } -    Constant [ integer ZEND_ACC_ABSTRACT ] { 2 } -  } - -  - Functions { -    Function [ <internal:uopz> function uopz_set_return ] { -    } -    Function [ <internal:uopz> function uopz_get_return ] { -    } -    Function [ <internal:uopz> function uopz_unset_return ] { -    } -    Function [ <internal:uopz> function uopz_set_mock ] { -    } -    Function [ <internal:uopz> function uopz_get_mock ] { -    } -    Function [ <internal:uopz> function uopz_unset_mock ] { -    } -    Function [ <internal:uopz> function uopz_get_static ] { -    } -    Function [ <internal:uopz> function uopz_set_static ] { -    } -    Function [ <internal:uopz> function uopz_set_hook ] { -    } -    Function [ <internal:uopz> function uopz_get_hook ] { -    } -    Function [ <internal:uopz> function uopz_unset_hook ] { -    } -    Function [ <internal:uopz> function uopz_add_function ] { -    } -    Function [ <internal:uopz> function uopz_del_function ] { -    } -    Function [ <internal:uopz> function uopz_extend ] { -    } -    Function [ <internal:uopz> function uopz_implement ] { -    } -    Function [ <internal:uopz> function uopz_flags ] { -    } -    Function [ <internal:uopz> function uopz_redefine ] { -    } -    Function [ <internal:uopz> function uopz_undefine ] { -    } -    Function [ <internal:uopz> function uopz_set_property ] { -    } -    Function [ <internal:uopz> function uopz_get_property ] { -    } -  } -} - diff --git a/php-pecl-uopz-php7.spec b/php-pecl-uopz-php7.spec deleted file mode 100644 index ae1e69f..0000000 --- a/php-pecl-uopz-php7.spec +++ /dev/null @@ -1,325 +0,0 @@ -# remirepo spec file for php-pecl-uopz -# -# Copyright (c) 2014-2017 Remi Collet -# License: CC-BY-SA -# http://creativecommons.org/licenses/by-sa/4.0/ -# -# Please, preserve the changelog entries -# -%if 0%{?scl:1} -%global sub_prefix %{scl_prefix} -%scl_package       php-pecl-uopz -%endif - -%global with_zts   0%{!?_without_zts:%{?__ztsphp:1}} -%global pecl_name  uopz -%global ini_name   05-%{pecl_name}.ini - -# see https://github.com/krakjoe/uopz/releases -#global gh_commit  c335700be4dc4350605bc4fb1efd8e96ba51b733 -#global gh_short   %%(c=ยต%{gh_commit}; echo ${c:0:7}) -#global gh_owner   krakjoe -#global gh_project uopz - -Summary:        User Operations for Zend -Name:           %{?sub_prefix}php-pecl-%{pecl_name} -Version:        5.0.1 -Release:        4%{?dist}%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')} -License:        PHP -Group:          Development/Languages -URL:            http://pecl.php.net/package/%{pecl_name} -%if 0%{?gh_commit:1} -Source0:        https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{gh_project}-%{version}-%{gh_short}.tar.gz -%else -Source0:        http://pecl.php.net/get/%{pecl_name}-%{version}.tgz -%endif - -Patch0:         %{pecl_name}-upstream.patch - -BuildRequires:  %{?scl_prefix}php-devel > 7 -BuildRequires:  %{?scl_prefix}php-pear - -Requires:       %{?scl_prefix}php(zend-abi) = %{php_zend_api} -Requires:       %{?scl_prefix}php(api) = %{php_core_api} -%{?_sclreq:Requires: %{?scl_prefix}runtime%{?_sclreq}%{?_isa}} - -Provides:       %{?scl_prefix}php-%{pecl_name}               = %{version} -Provides:       %{?scl_prefix}php-%{pecl_name}%{?_isa}       = %{version} -Provides:       %{?scl_prefix}php-pecl(%{pecl_name})         = %{version} -Provides:       %{?scl_prefix}php-pecl(%{pecl_name})%{?_isa} = %{version} -%if "%{?scl_prefix}" != "%{?sub_prefix}" -Provides:       %{?scl_prefix}php-pecl-%{pecl_name}          = %{version}-%{release} -Provides:       %{?scl_prefix}php-pecl-%{pecl_name}%{?_isa}  = %{version}-%{release} -%endif - -%if "%{?vendor}" == "Remi Collet" && 0%{!?scl:1} && 0%{?rhel} -# Other third party repo stuff -Obsoletes:     php53-pecl-%{pecl_name}  <= %{version} -Obsoletes:     php53u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php54-pecl-%{pecl_name}  <= %{version} -Obsoletes:     php54w-pecl-%{pecl_name} <= %{version} -Obsoletes:     php55u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php55w-pecl-%{pecl_name} <= %{version} -Obsoletes:     php56u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php56w-pecl-%{pecl_name} <= %{version} -Obsoletes:     php70u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php70w-pecl-%{pecl_name} <= %{version} -%if "%{php_version}" > "7.1" -Obsoletes:     php71u-pecl-%{pecl_name} <= %{version} -Obsoletes:     php71w-pecl-%{pecl_name} <= %{version} -%endif -%endif - -%if 0%{?fedora} < 20 && 0%{?rhel} < 7 -# Filter shared private -%{?filter_provides_in: %filter_provides_in %{_libdir}/.*\.so$} -%{?filter_setup} -%endif - - -%description -User Operations for Zend: doing things you probably shouldn't since 2014. - -The uopz extension exposes Zend engine functionality normally used at -compilation and execution time in order to allow modification of the -internal structures that represent PHP code. - -It supports the following activities: -- Overloading some Zend opcodes including exit/new and composure opcodes -- Renaming functions and methods -- Aliasing functions and methods -- Deletion of functions and methods -- Redefinition of constants -- Deletion of constants -- Runtime composition and modification of classes - -Documentation: http://php.net/uopz - -Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')%{?scl: as Software Collection (%{scl} by %{?scl_vendor}%{!?scl_vendor:rh})}. - - -%prep -%setup -q -c -%if 0%{?gh_commit:1} -mv %{gh_project}-%{gh_commit} NTS -# Temporary, until released on PECL -%{__php} -r ' -  $pkg = simplexml_load_file("NTS/package.xml"); -  $pkg->date = "2016-04-12"; -  $pkg->version->release = "%{version}"; -  $pkg->version->release = "%{version}"; -  $pkg->stability->release = "beta"; -  $pkg->stability->api = "beta"; -  $pkg->asXML("package.xml"); -' -%else -mv %{pecl_name}-%{version} NTS -%endif - -# Don't install/register tests -sed -e 's/role="test"/role="src"/' \ -    %{?_licensedir:-e '/LICENSE/s/role="doc"/role="src"/' } \ -    -i package.xml - -cd NTS -%patch0 -p1 -b .upstream - -# Sanity check, really often broken -extver=$(sed -n '/#define PHP_UOPZ_VERSION/{s/.* "//;s/".*$//;p}' uopz.h) -if test "x${extver}" != "x%{version}"; then -   : Error: Upstream extension version is ${extver}, expecting %{version}. -   exit 1 -fi -cd .. - -# Create configuration files -cat << EOF | tee %{ini_name} -; Enable '%{summary}' extension module -extension=%{pecl_name}.so -EOF - -%if %{with_zts} -# Duplicate source tree for NTS / ZTS build -cp -pr NTS ZTS -%endif - - -%build -cd NTS -%{_bindir}/phpize -%configure \ -    --with-php-config=%{_bindir}/php-config -make %{?_smp_mflags} - -%if %{with_zts} -cd ../ZTS -%{_bindir}/zts-phpize -%configure \ -    --with-php-config=%{_bindir}/zts-php-config -make %{?_smp_mflags} -%endif - - -%install -make -C NTS install INSTALL_ROOT=%{buildroot} - -# install config file -install -D -m 644 %{ini_name} %{buildroot}%{php_inidir}/%{ini_name} - -# Install XML package description -install -D -m 644 package.xml %{buildroot}%{pecl_xmldir}/%{name}.xml - -%if %{with_zts} -make -C ZTS install INSTALL_ROOT=%{buildroot} -install -D -m 644 %{ini_name} %{buildroot}%{php_ztsinidir}/%{ini_name} -%endif - -# Documentation -for i in $(grep 'role="doc"' package.xml | sed -e 's/^.*name="//;s/".*$//') -do install -Dpm 644 NTS/$i %{buildroot}%{pecl_docdir}/%{pecl_name}/$i -done - - -%if 0%{?fedora} < 24 -# when pear installed alone, after us -%triggerin -- %{?scl_prefix}php-pear -if [ -x %{__pecl} ] ; then -    %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : -fi - -# posttrans as pear can be installed after us -%posttrans -if [ -x %{__pecl} ] ; then -    %{pecl_install} %{pecl_xmldir}/%{name}.xml >/dev/null || : -fi - -%postun -if [ $1 -eq 0 -a -x %{__pecl} ] ; then -    %{pecl_uninstall} %{pecl_name} >/dev/null || : -fi -%endif - - -%check -cd NTS -: Minimal load test for NTS extension -%{__php} --no-php-ini \ -    --define extension=%{buildroot}%{php_extdir}/%{pecl_name}.so \ -    --modules | grep %{pecl_name} - -: Upstream test suite  for NTS extension -TEST_PHP_EXECUTABLE=%{__php} \ -TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_extdir}/%{pecl_name}.so" \ -NO_INTERACTION=1 \ -REPORT_EXIT_STATUS=1 \ -%{__php} -n run-tests.php - -%if %{with_zts} -cd ../ZTS -: Minimal load test for ZTS extension -%{__ztsphp} --no-php-ini \ -    --define extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so \ -    --modules | grep %{pecl_name} - -: Upstream test suite  for ZTS extension -TEST_PHP_EXECUTABLE=%{_bindir}/zts-php \ -TEST_PHP_ARGS="-n -d extension=%{buildroot}%{php_ztsextdir}/%{pecl_name}.so" \ -NO_INTERACTION=1 \ -REPORT_EXIT_STATUS=1 \ -%{_bindir}/zts-php -n run-tests.php -%endif - - -%files -%{?_licensedir:%license NTS/LICENSE} -%doc %{pecl_docdir}/%{pecl_name} -%{pecl_xmldir}/%{name}.xml - -%config(noreplace) %{php_inidir}/%{ini_name} -%{php_extdir}/%{pecl_name}.so - -%if %{with_zts} -%config(noreplace) %{php_ztsinidir}/%{ini_name} -%{php_ztsextdir}/%{pecl_name}.so -%endif - - -%changelog -* Thu Dec  1 2016 Remi Collet <remi@fedoraproject.org> - 5.0.1-4 -- rebuild with PHP 7.1.0 GA - -* Wed Sep 14 2016 Remi Collet <remi@fedoraproject.org> - 5.0.1-3 -- rebuild for PHP 7.1 new API version - -* Thu Jun  9 2016 Remi Collet <remi@fedoraproject.org> - 5.0.1-2 -- add upstream patch for PHP 7.1 - -* Wed Apr 13 2016 Remi Collet <remi@fedoraproject.org> - 5.0.1-1 -- update to 5.0.1 - -* Wed Apr 13 2016 Remi Collet <remi@fedoraproject.org> - 5.0.0-1 -- update to 5.0.0 for PHP 7 -- sources from github (not yet released on pecl) - -* Tue Mar  8 2016 Remi Collet <remi@fedoraproject.org> - 2.0.7-2 -- adapt for F24 - -* Wed Mar 04 2015 Remi Collet <remi@fedoraproject.org> - 2.0.7-1 -- Update to 2.0.7 -- drop runtime dependency on pear, new scriptlets - -* Wed Dec 24 2014 Remi Collet <remi@fedoraproject.org> - 2.0.6-1.1 -- Fedora 21 SCL mass rebuild - -* Wed Oct 15 2014 Remi Collet <remi@fedoraproject.org> - 2.0.6-1 -- Update to 2.0.6 -- don't provide test suite - -* Tue Aug 26 2014 Remi Collet <rcollet@redhat.com> - 2.0.5-2 -- improve SCL build - -* Thu Jun 05 2014 Remi Collet <remi@fedoraproject.org> - 2.0.5-1 -- Update to 2.0.5 (stable) - -* Tue Apr  8 2014 Remi Collet <remi@fedoraproject.org> - 2.0.4-2 -- add numerical prefix to extension configuration files - -* Fri Apr 04 2014 Remi Collet <remi@fedoraproject.org> - 2.0.4-1 -- Update to 2.0.4 (stable) -- improve uopz.ini (comments) - -* Thu Apr 03 2014 Remi Collet <remi@fedoraproject.org> - 2.0.3-1 -- Update to 2.0.3 (stable) - -* Wed Apr 02 2014 Remi Collet <remi@fedoraproject.org> - 2.0.2-1 -- Update to 2.0.2 (stable) - -* Tue Apr 01 2014 Remi Collet <remi@fedoraproject.org> - 2.0.1-1 -- Update to 2.0.1 (stable) - -* Mon Mar 31 2014 Remi Collet <remi@fedoraproject.org> - 2.0.0-1 -- Update to 2.0.0 (2014-03-31 06:00:49, stable) - -* Sun Mar 30 2014 Remi Collet <remi@fedoraproject.org> - 1.0.11-1 -- Update to 1.0.11 (2014-03-30 14:05:44, beta) - -* Fri Mar 28 2014 Remi Collet <remi@fedoraproject.org> - 1.0.5-1 -- Update to 1.0.5 (2014-03-28 00:48:31, beta) - -* Thu Mar 27 2014 Remi Collet <remi@fedoraproject.org> - 1.0.4-1 -- Update to 1.0.4 (2014-03-27 18:34:03, beta) - -* Thu Mar 27 2014 Remi Collet <remi@fedoraproject.org> - 1.0.4-0 -- pre-release test build - -* Tue Mar 25 2014 Remi Collet <remi@fedoraproject.org> - 1.0.3-1 -- Update to 1.0.3 (2014-03-24 19:37:04, beta) - -* Mon Mar 24 2014 Remi Collet <remi@fedoraproject.org> - 1.0.2-1 -- Update to 1.0.2 (2014-03-24 10:34:02, beta) - -* Mon Mar 24 2014 Remi Collet <remi@fedoraproject.org> - 1.0.1-1 -- Update to 1.0.1 (2014-03-23 19:03:27, beta) - -* Sun Mar 23 2014 Remi Collet <remi@fedoraproject.org> - 1.0.0-1 -- initial package, version 1.0.0 (12:55, beta) diff --git a/uopz-upstream.patch b/uopz-upstream.patch deleted file mode 100644 index 35a29a7..0000000 --- a/uopz-upstream.patch +++ /dev/null @@ -1,226 +0,0 @@ -From b15f4d83a760013142c5275a2b29244a5ef62d90 Mon Sep 17 00:00:00 2001 -From: Joe Watkins <krakjoe@php.net> -Date: Thu, 26 May 2016 12:10:15 +0100 -Subject: [PATCH] fixes for 7.1, add leave helper function - ---- - src/class.c    | 55 +++++++++++++++++++++++++++++++++---------------------- - src/handlers.c | 33 +++++++++++++++++++++++---------- - uopz.h         |  2 +- - 3 files changed, 57 insertions(+), 33 deletions(-) - -diff --git a/src/class.c b/src/class.c -index 15100d9..db9fe6c 100644 ---- a/src/class.c -+++ b/src/class.c -@@ -27,6 +27,14 @@ -  - ZEND_EXTERN_MODULE_GLOBALS(uopz); -  -+#if PHP_VERSION_ID >= 70100 -+#	define uopz_get_scope(e) ((e) ? zend_get_executed_scope() : EG(fake_scope)) -+#	define uopz_set_scope(s) EG(fake_scope) = (s) -+#else -+#	define uopz_get_scope(e) EG(scope) -+#	define uopz_set_scope(s) EG(scope) = (s) -+#endif -+ - void uopz_set_mock(zend_string *clazz, zval *mock) { /* {{{ */ - 	zend_string *key = zend_string_tolower(clazz); -  -@@ -131,12 +139,12 @@ zend_bool uopz_implement(zend_class_entry *clazz, zend_class_entry *interface) { - } /* }}} */ -  - void uopz_set_property(zval *object, zval *member, zval *value) { /* {{{ */ --	zend_class_entry *scope = EG(scope); -+	zend_class_entry *scope = uopz_get_scope(1); - 	zend_class_entry *ce = Z_OBJCE_P(object); - 	zend_property_info *info; -  - 	do { --		EG(scope) = ce; -+		uopz_set_scope(ce); -  - 		info = zend_get_property_info(ce, Z_STR_P(member), 1); - 	 -@@ -148,25 +156,25 @@ void uopz_set_property(zval *object, zval *member, zval *value) { /* {{{ */ - 	} while (ce); -  - 	if (info && info != ZEND_WRONG_PROPERTY_INFO) { --		EG(scope) = info->ce; -+		uopz_set_scope(info->ce); - 	} else { --		EG(scope) = Z_OBJCE_P(object); -+		uopz_set_scope(Z_OBJCE_P(object)); - 	} -  - 	Z_OBJ_HT_P(object) - 		->write_property(object, member, value, NULL); -  --	EG(scope) = scope; -+	uopz_set_scope(scope); - } /* }}} */ -  - void uopz_get_property(zval *object, zval *member, zval *value) { /* {{{ */ --	zend_class_entry *scope = EG(scope); -+	zend_class_entry *scope = uopz_get_scope(1); - 	zend_class_entry *ce = Z_OBJCE_P(object); - 	zend_property_info *info; - 	zval *prop, rv; -  - 	do { --		EG(scope) = ce; -+		uopz_set_scope(ce); -  - 		info = zend_get_property_info(ce, Z_STR_P(member), 1); - 	 -@@ -178,14 +186,15 @@ void uopz_get_property(zval *object, zval *member, zval *value) { /* {{{ */ - 	} while (ce); -  - 	if (info && info != ZEND_WRONG_PROPERTY_INFO) { --		EG(scope) = info->ce; -+		uopz_set_scope(info->ce); - 	} else { --		EG(scope) = Z_OBJCE_P(object); -+		uopz_set_scope(Z_OBJCE_P(object)); - 	} - 	 - 	prop = Z_OBJ_HT_P(object) - 		->read_property(object, member, BP_VAR_R, NULL, &rv); --	EG(scope) = scope; -+ -+	uopz_set_scope(scope); -  - 	if (!prop) { - 		return; -@@ -195,13 +204,13 @@ void uopz_get_property(zval *object, zval *member, zval *value) { /* {{{ */ - } /* }}} */ -  - void uopz_set_static_property(zend_class_entry *ce, zend_string *property, zval *value) { /* {{{ */ --	zend_class_entry *scope = EG(scope); -+	zend_class_entry *scope = uopz_get_scope(1); - 	zend_class_entry *seek = ce; - 	zend_property_info *info; - 	zval *prop; -  - 	do { --		EG(scope) = seek; -+		uopz_set_scope(seek); -  - 		info = zend_get_property_info(seek, property, 1); - 	 -@@ -213,13 +222,14 @@ void uopz_set_static_property(zend_class_entry *ce, zend_string *property, zval - 	} while (seek); -  - 	if (info && info != ZEND_WRONG_PROPERTY_INFO) { --		EG(scope) = info->ce; -+		uopz_set_scope(info->ce); - 	} else { --		EG(scope) = ce; -+		uopz_set_scope(ce); - 	} -  --	prop = zend_std_get_static_property(EG(scope), property, 1); --	EG(scope) = scope; -+	prop = zend_std_get_static_property(uopz_get_scope(0), property, 1); -+	 -+	uopz_set_scope(scope); -  - 	if (!prop) { - 		return; -@@ -230,13 +240,13 @@ void uopz_set_static_property(zend_class_entry *ce, zend_string *property, zval - } /* }}} */ -  - void uopz_get_static_property(zend_class_entry *ce, zend_string *property, zval *value) { /* {{{ */ --	zend_class_entry *scope = EG(scope); -+	zend_class_entry *scope = uopz_get_scope(1); - 	zend_class_entry *seek = ce; - 	zend_property_info *info; - 	zval *prop; -  - 	do { --		EG(scope) = seek; -+		uopz_set_scope(seek); -  - 		info = zend_get_property_info(seek, property, 1); - 	 -@@ -248,13 +258,14 @@ void uopz_get_static_property(zend_class_entry *ce, zend_string *property, zval - 	} while (seek); -  - 	if (info && info != ZEND_WRONG_PROPERTY_INFO) { --		EG(scope) = info->ce; -+		uopz_set_scope(info->ce); - 	} else { --		EG(scope) = ce; -+		uopz_set_scope(ce); - 	} -  --	prop = zend_std_get_static_property(EG(scope), property, 1); --	EG(scope) = scope; -+	prop = zend_std_get_static_property(uopz_get_scope(0), property, 1); -+	 -+	uopz_set_scope(scope); -  - 	if (!prop) { - 		return; -diff --git a/src/handlers.c b/src/handlers.c -index 11b7f5f..98e9c37 100644 ---- a/src/handlers.c -+++ b/src/handlers.c -@@ -344,6 +344,27 @@ static inline void uopz_run_hook(zend_function *function, zend_execute_data *exe - 	} - } /* }}} */ -  -+/* {{{ */ -+static inline int php_uopz_leave_helper(zend_execute_data *execute_data) { -+	zend_execute_data *call = EX(call); -+	uint32_t info = ZEND_CALL_INFO(call); -+ -+	if (info & ZEND_CALL_RELEASE_THIS) { -+		OBJ_RELEASE(Z_OBJ(call->This)); -+	} else if (info & ZEND_CALL_CLOSURE) { -+		 OBJ_RELEASE((zend_object*)call->func->op_array.prototype); -+	} -+ -+	EX(call) = call->prev_execute_data; -+ -+	zend_vm_stack_free_args(call); -+	zend_vm_stack_free_call_frame(call); -+ -+	EX(opline) = EX(opline) + 1; -+ -+	return ZEND_USER_OPCODE_LEAVE; -+} /* }}} */ -+ - int uopz_return_handler(UOPZ_OPCODE_HANDLER_ARGS) { /* {{{ */ - 	zend_execute_data *call = EX(call); -  -@@ -366,26 +387,18 @@ int uopz_return_handler(UOPZ_OPCODE_HANDLER_ARGS) { /* {{{ */ -  - 				uopz_execute_return(ureturn, call, return_value); -  --				EX(call) = call->prev_execute_data; --				zend_vm_stack_free_call_frame(call); --				EX(opline) = opline + 1; -- - 				if (!RETURN_VALUE_USED(opline)) { - 					zval_ptr_dtor(&rv); - 				} -  --				return ZEND_USER_OPCODE_CONTINUE; -+				return php_uopz_leave_helper(UOPZ_OPCODE_HANDLER_ARGS_PASSTHRU); - 			} -  - 			if (RETURN_VALUE_USED(opline)) { - 				ZVAL_COPY(return_value, &ureturn->value); - 			} -  --			EX(call) = call->prev_execute_data; --			zend_vm_stack_free_call_frame(call); --			EX(opline) = opline + 1; -- --			return ZEND_USER_OPCODE_CONTINUE; -+			return php_uopz_leave_helper(UOPZ_OPCODE_HANDLER_ARGS_PASSTHRU); - 		} - 	} -   | 
