Fixed compilation on Windows

This commit is contained in:
Dmitry Stogov 2007-11-23 15:02:50 +00:00
parent d339ebc10f
commit 17c6007445
3 changed files with 5 additions and 2 deletions

View File

@ -181,6 +181,8 @@ char *alloca ();
# define ZEND_ALLOCA_MAX_SIZE (32 * 1024)
# define ALLOCA_FLAG(name) \
zend_bool name;
# define SET_ALLOCA_FLAG(name) \
name = 1
# define do_alloca_ex(size, limit, use_heap) \
((use_heap = (UNEXPECTED((size) > (limit)))) ? emalloc(size) : alloca(size))
# define do_alloca(size, use_heap) \
@ -189,6 +191,7 @@ char *alloca ();
do { if (UNEXPECTED(use_heap)) efree(p); } while (0)
#else
# define ALLOCA_FLAG(name)
# define SET_ALLOCA_FLAG(name)
# define do_alloca(p, use_heap) emalloc(p)
# define free_alloca(p, use_heap) efree(p)
#endif

View File

@ -48,7 +48,7 @@ ZEND_API void execute(zend_op_array *op_array TSRMLS_DC)
if (EXPECTED(op_array->T < TEMP_VAR_STACK_LIMIT && op_array->last_var < TEMP_VAR_STACK_LIMIT)) {
EX(CVs) = (zval***)do_alloca(sizeof(zval**) * op_array->last_var + sizeof(temp_variable) * op_array->T, EX(use_heap));
} else {
EX(use_heap) = 1;
SET_ALLOCA_FLAG(EX(use_heap));
EX(CVs) = (zval***)safe_emalloc(sizeof(temp_variable), op_array->T, sizeof(zval**) * op_array->last_var);
}
EX(Ts) = (temp_variable *)(EX(CVs) + op_array->last_var);

View File

@ -19,7 +19,7 @@ ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC)
if (EXPECTED(op_array->T < TEMP_VAR_STACK_LIMIT && op_array->last_var < TEMP_VAR_STACK_LIMIT)) {
EX(CVs) = (zval***)do_alloca(sizeof(zval**) * op_array->last_var + sizeof(temp_variable) * op_array->T, EX(use_heap));
} else {
EX(use_heap) = 1;
SET_ALLOCA_FLAG(EX(use_heap));
EX(CVs) = (zval***)safe_emalloc(sizeof(temp_variable), op_array->T, sizeof(zval**) * op_array->last_var);
}
EX(Ts) = (temp_variable *)(EX(CVs) + op_array->last_var);