Date: Tue, 29 May 2012 20:20:05 GMT From: Espen Volden <espen@responsreklame.no> To: freebsd-ports-bugs@FreeBSD.org Subject: Re: ports/168441: [patch] devel/pecl-xhprof PHP 5.4 support Message-ID: <201205292020.q4TKK584091265@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/168441; it has been noted by GNATS. From: Espen Volden <espen@responsreklame.no> To: bug-followup@FreeBSD.org Cc: Subject: Re: ports/168441: [patch] devel/pecl-xhprof PHP 5.4 support Date: Tue, 29 May 2012 21:29:12 +0200 This is a multi-part message in MIME format. --------------060307030907010106000704 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit For some reason the patch didn't get attached to the PR. The patch is attached to this message. --------------060307030907010106000704 Content-Type: text/x-csrc; name="patch-extensions-xhprof.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="patch-extensions-xhprof.c" --- xhprof.c +++ xhprof.c @@ -28,6 +28,7 @@ #include "php_ini.h" #include "ext/standard/info.h" #include "php_xhprof.h" +#include "Zend/zend_extensions.h" #include <sys/time.h> #include <sys/resource.h> #include <stdlib.h> @@ -898,7 +899,7 @@ static char *hp_get_base_filename(char *filename) { static char *hp_get_function_name(zend_op_array *ops TSRMLS_DC) { zend_execute_data *data; char *func = NULL; - char *cls = NULL; + const char *cls = NULL; char *ret = NULL; int len; zend_function *curr_func; @@ -942,7 +943,12 @@ static char *hp_get_function_name(zend_op_array *ops TSRMLS_DC) { /* we are dealing with a special directive/function like * include, eval, etc. */ +#if ZEND_EXTENSION_API_NO >= 220100525 + curr_op = data->opline->extended_value; +#else curr_op = data->opline->op2.u.constant.value.lval; +#endif + switch (curr_op) { case ZEND_EVAL: func = "eval"; @@ -1660,13 +1666,22 @@ ZEND_DLEXPORT void hp_execute_internal(zend_execute_data *execute_data, if (!_zend_execute_internal) { /* no old override to begin with. so invoke the builtin's implementation */ zend_op *opline = EX(opline); +#if ZEND_EXTENSION_API_NO >= 220100525 + temp_variable *retvar = &EX_T(opline->result.var); + ((zend_internal_function *) EX(function_state).function)->handler( + opline->extended_value, + retvar->var.ptr, + (EX(function_state).function->common.fn_flags & ZEND_ACC_RETURN_REFERENCE) ? + &retvar->var.ptr:NULL, + EX(object), ret TSRMLS_CC); +#else ((zend_internal_function *) EX(function_state).function)->handler( opline->extended_value, EX_T(opline->result.u.var).var.ptr, EX(function_state).function->common.return_reference ? &EX_T(opline->result.u.var).var.ptr:NULL, EX(object), ret TSRMLS_CC); - +#endif } else { /* call the old override */ _zend_execute_internal(execute_data, ret TSRMLS_CC); --------------060307030907010106000704--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201205292020.q4TKK584091265>