summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend-parser.y2
-rw-r--r--Zend/zend.c22
-rw-r--r--Zend/zend.h8
-rw-r--r--Zend/zend_API.c2
-rw-r--r--Zend/zend_API.h2
-rw-r--r--Zend/zend_builtin_functions.c2
-rw-r--r--Zend/zend_compile.c2
-rw-r--r--Zend/zend_execute.c2
-rw-r--r--Zend/zend_execute_API.c2
-rw-r--r--Zend/zend_opcode.c2
-rw-r--r--Zend/zend_variables.c1
11 files changed, 25 insertions, 22 deletions
diff --git a/Zend/zend-parser.y b/Zend/zend-parser.y
index 1938e0949b..c6e7fc3c23 100644
--- a/Zend/zend-parser.y
+++ b/Zend/zend-parser.y
@@ -33,8 +33,6 @@
#include "zend_list.h"
#include "zend_globals.h"
#include "zend_API.h"
-#include "zend_variables.h"
-#include "zend_operators.h"
#define YYERROR_VERBOSE
#define YYSTYPE znode
diff --git a/Zend/zend.c b/Zend/zend.c
index 3f18b9284e..b8f145c4d5 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -19,8 +19,6 @@
#include "zend.h"
-#include "zend_operators.h"
-#include "zend_variables.h"
#include "zend_extensions.h"
#include "modules.h"
#include "zend_constants.h"
@@ -41,7 +39,7 @@
/* true multithread-shared globals */
ZEND_API zend_class_entry zend_standard_class_def;
ZEND_API int (*zend_printf)(const char *format, ...);
-ZEND_API int (*zend_write)(const char *str, uint str_length);
+ZEND_API zend_write_func_t zend_write;
ZEND_API void (*zend_error)(int type, const char *format, ...);
ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path);
ZEND_API void (*zend_block_interruptions)(void);
@@ -163,6 +161,12 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop
ZEND_API int zend_print_zval(zval *expr, int indent)
{
+ return zend_print_zval_ex(zend_write, expr, indent);
+}
+
+
+ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent)
+{
zval expr_copy;
int use_copy;
@@ -176,7 +180,7 @@ ZEND_API int zend_print_zval(zval *expr, int indent)
}
return 0;
}
- ZEND_WRITE(expr->value.str.val,expr->value.str.len);
+ write_func(expr->value.str.val,expr->value.str.len);
if (use_copy) {
zval_dtor(expr);
}
@@ -184,7 +188,13 @@ ZEND_API int zend_print_zval(zval *expr, int indent)
}
-ZEND_API void zend_print_zval_r(zval *expr, int indent)
+ZEND_API void zend_print_zval_r(zval *expr, int indent)
+{
+ zend_print_zval_r_ex(zend_write, expr, indent);
+}
+
+
+ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent)
{
switch(expr->type) {
case IS_ARRAY:
@@ -298,7 +308,7 @@ int zend_startup(zend_utility_functions *utility_functions, char **extensions, i
/* Set up utility functions and values */
zend_error = utility_functions->error_function;
zend_printf = utility_functions->printf_function;
- zend_write = utility_functions->write_function;
+ zend_write = (zend_write_func_t) utility_functions->write_function;
zend_fopen = utility_functions->fopen_function;
if (!zend_fopen) {
zend_fopen = zend_fopen_wrapper;
diff --git a/Zend/zend.h b/Zend/zend.h
index 64f2c57870..bce477c006 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -237,6 +237,9 @@ typedef struct _zend_utility_values {
} zend_utility_values;
+typedef int (*zend_write_func_t)(const char *str, uint str_length);
+
+
#undef MIN
#undef MAX
#define MAX(a,b) (((a)>(b))?(a):(b))
@@ -282,7 +285,9 @@ ZEND_API char *get_zend_version(void);
ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_copy);
ZEND_API int zend_print_zval(zval *expr, int indent);
+ZEND_API int zend_print_zval_ex(zend_write_func_t write_func, zval *expr, int indent);
ZEND_API void zend_print_zval_r(zval *expr, int indent);
+ZEND_API void zend_print_zval_r_ex(zend_write_func_t write_func, zval *expr, int indent);
ZEND_API extern char *empty_string;
@@ -302,9 +307,10 @@ ZEND_API extern char *empty_string;
#define ZEND_PUTS(str) zend_write((str), strlen((str)))
#define ZEND_PUTC(c) zend_write(&(c), 1), (c)
+
BEGIN_EXTERN_C()
extern ZEND_API int (*zend_printf)(const char *format, ...);
-extern ZEND_API int (*zend_write)(const char *str, uint str_length);
+extern ZEND_API zend_write_func_t zend_write;
extern ZEND_API void (*zend_error)(int type, const char *format, ...);
extern ZEND_API FILE *(*zend_fopen)(const char *filename, char **opened_path);
extern ZEND_API void (*zend_block_interruptions)(void);
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index ecf62e0f39..862a298058 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -19,12 +19,10 @@
#include "zend.h"
-#include "zend_variables.h"
#include "zend_execute.h"
#include "zend_API.h"
#include "modules.h"
#include "zend_constants.h"
-#include "zend_operators.h"
#ifdef HAVE_STDARG_H
# include <stdarg.h>
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index ffb3b212e1..117eeea813 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -24,6 +24,8 @@
#include "modules.h"
#include "zend_list.h"
#include "zend_fast_cache.h"
+#include "zend_operators.h"
+#include "zend_variables.h"
#define ZEND_NAMED_FUNCTION(name) void name(INTERNAL_FUNCTION_PARAMETERS)
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index 9ae62e2502..d8d826c105 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -21,8 +21,6 @@
#include "zend.h"
#include "zend_API.h"
#include "zend_builtin_functions.h"
-#include "zend_operators.h"
-#include "zend_variables.h"
#include "zend_constants.h"
#undef ZEND_TEST_EXCEPTIONS
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 4e77ca438d..85c0a0bb65 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -23,8 +23,6 @@
#include "zend_compile.h"
#include "zend_llist.h"
#include "zend_API.h"
-#include "zend_variables.h"
-#include "zend_operators.h"
#include "zend_fast_cache.h"
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 47e0795a89..1986e1c43a 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -27,8 +27,6 @@
#include "zend_execute.h"
#include "zend_API.h"
#include "zend_ptr_stack.h"
-#include "zend_variables.h"
-#include "zend_operators.h"
#include "zend_constants.h"
#include "zend_extensions.h"
#include "zend_fast_cache.h"
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index cd25435841..40d62bada1 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -26,8 +26,6 @@
#include "zend_execute.h"
#include "zend_API.h"
#include "zend_ptr_stack.h"
-#include "zend_variables.h"
-#include "zend_operators.h"
#include "zend_constants.h"
#include "zend_extensions.h"
#include "zend_execute_locks.h"
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 92e30acadc..faaa54f0d0 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -23,8 +23,6 @@
#include "zend.h"
#include "zend_alloc.h"
#include "zend_compile.h"
-#include "zend_variables.h"
-#include "zend_operators.h"
#include "zend_extensions.h"
#include "zend_API.h"
diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c
index a87cb7b139..6c0a882cdf 100644
--- a/Zend/zend_variables.c
+++ b/Zend/zend_variables.c
@@ -23,7 +23,6 @@
#include "zend_API.h"
#include "zend_globals.h"
#include "zend_constants.h"
-#include "zend_variables.h"
#include "zend_list.h"
ZEND_API char *empty_string = ""; /* in order to save emalloc() and efree() time for