summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2000-09-12 20:48:33 +0000
committerZeev Suraski <zeev@php.net>2000-09-12 20:48:33 +0000
commit6c3d7449e12c7f6f82ce0c9d84afcecf6964d2c7 (patch)
tree5f023a8aa7a5be318bb93d9253f30c6142541200 /ext
parent5286b3971cbe7763f1f5aa918a5a909f61968fe8 (diff)
downloadphp-git-6c3d7449e12c7f6f82ce0c9d84afcecf6964d2c7.tar.gz
- Made eval() and several other runtime-evaluated code portions report the
nature and location of errors more accurately (Stas)
Diffstat (limited to 'ext')
-rw-r--r--ext/pcre/php_pcre.c6
-rw-r--r--ext/standard/assert.c6
-rw-r--r--ext/standard/basic_functions.c7
3 files changed, 16 insertions, 3 deletions
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index 6a5a74de9c..68b112ab8f 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -544,6 +544,7 @@ static int preg_do_eval(char *eval_str, int eval_str_len, char *subject,
int esc_match_len; /* Length of the quote-escaped match */
int result_len; /* Length of the result of the evaluation */
int backref; /* Current backref */
+ char *compiled_string_description;
CLS_FETCH();
ELS_FETCH();
@@ -578,11 +579,14 @@ static int preg_do_eval(char *eval_str, int eval_str_len, char *subject,
}
}
+ compiled_string_description = zend_make_compiled_string_description("regexp code");
/* Run the code */
- if (zend_eval_string(code, &retval CLS_CC ELS_CC) == FAILURE) {
+ if (zend_eval_string(code, &retval, compiled_string_description CLS_CC ELS_CC) == FAILURE) {
+ efree(compiled_string_description);
zend_error(E_ERROR, "Failed evaluating code:\n%s\n", code);
/* zend_error() does not return in this case */
}
+ efree(compiled_string_description);
convert_to_string(&retval);
/* Save the return value and its length */
diff --git a/ext/standard/assert.c b/ext/standard/assert.c
index facd41548f..ce68c89360 100644
--- a/ext/standard/assert.c
+++ b/ext/standard/assert.c
@@ -138,6 +138,7 @@ PHP_FUNCTION(assert)
int val;
char *myeval = NULL;
char *cbfunc;
+ char *compiled_string_description;
CLS_FETCH();
ASSERTLS_FETCH();
@@ -160,10 +161,13 @@ PHP_FUNCTION(assert)
EG(error_reporting) = 0;
}
- if (zend_eval_string(myeval, &retval CLS_CC ELS_CC) == FAILURE) {
+ compiled_string_description = zend_make_compiled_string_description("assert code");
+ if (zend_eval_string(myeval, &retval, compiled_string_description CLS_CC ELS_CC) == FAILURE) {
+ efree(compiled_string_description);
zend_error(E_ERROR, "Failure evaluating code:\n%s\n", myeval);
/* zend_error() does not return in this case. */
}
+ efree(compiled_string_description);
if (ASSERT(quiet_eval)) {
EG(error_reporting) = old_error_reporting;
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index d047a59c75..70d63fa15e 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -1691,6 +1691,7 @@ PHP_FUNCTION(highlight_string)
{
pval **expr;
zend_syntax_highlighter_ini syntax_highlighter_ini;
+ char *hicompiled_string_description;
if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &expr)==FAILURE) {
WRONG_PARAM_COUNT;
@@ -1699,10 +1700,14 @@ PHP_FUNCTION(highlight_string)
convert_to_string_ex(expr);
php_get_highlight_struct(&syntax_highlighter_ini);
+
+ hicompiled_string_description = zend_make_compiled_string_description("highlighted code");
- if (highlight_string(*expr, &syntax_highlighter_ini)==FAILURE) {
+ if (highlight_string(*expr, &syntax_highlighter_ini, hicompiled_string_description)==FAILURE) {
+ efree(hicompiled_string_description);
RETURN_FALSE;
}
+ efree(hicompiled_string_description);
RETURN_TRUE;
}
/* }}} */