From c9f27e91571a6141c904b7ce30d4523b842de749 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Sun, 10 Jun 2012 07:06:04 +0200 Subject: repo reorg --- xhprof-php54.patch | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 xhprof-php54.patch (limited to 'xhprof-php54.patch') diff --git a/xhprof-php54.patch b/xhprof-php54.patch new file mode 100644 index 0000000..92cd231 --- /dev/null +++ b/xhprof-php54.patch @@ -0,0 +1,85 @@ +From a6bae51236677d95cb329d5b20806465c0260394 Mon Sep 17 00:00:00 2001 +From: Scott MacVicar +Date: Sat, 16 Jul 2011 14:43:01 -0700 +Subject: [PATCH] Fixed PHP 5.4 building + +Summary: +Fixed PHP 5.4 building +* class names became constants +* return_reference is stored in zend_function.fn_flags +* deal with znode reorganisation + +Test Plan: +Build against php 5.4 +Build against php 5.3 + +Reviewers: scoates + +CC: + +Differential Revision: 682 +--- + extension/xhprof.c | 19 +++++++++++++++++-- + 1 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/extension/xhprof.c b/extension/xhprof.c +index 7001d12..33311b3 100644 +--- a/extension/xhprof.c ++++ b/extension/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 + #include + #include +@@ -898,7 +899,7 @@ size_t hp_get_function_stack(hp_entry_t *entry, + 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 @@ size_t hp_get_function_stack(hp_entry_t *entry, + /* 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); +-- +1.7.5.4 + -- cgit