version 1.1.1.2, 2012/05/29 12:34:43
|
version 1.1.1.3, 2013/07/22 01:32:04
|
Line 2
|
Line 2
|
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| PHP Version 5 | |
| PHP Version 5 | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| Copyright (c) 1997-2012 The PHP Group | | | Copyright (c) 1997-2013 The PHP Group | |
+----------------------------------------------------------------------+ |
+----------------------------------------------------------------------+ |
| This source file is subject to version 3.01 of the PHP license, | |
| This source file is subject to version 3.01 of the PHP license, | |
| that is bundled with this package in the file LICENSE, and is | |
| that is bundled with this package in the file LICENSE, and is | |
Line 136 PHP_MINFO_FUNCTION(assert) /* {{{ */
|
Line 136 PHP_MINFO_FUNCTION(assert) /* {{{ */
|
} |
} |
/* }}} */ |
/* }}} */ |
|
|
/* {{{ proto int assert(string|bool assertion) | /* {{{ proto int assert(string|bool assertion[, string description]) |
Checks if assertion is false */ |
Checks if assertion is false */ |
PHP_FUNCTION(assert) |
PHP_FUNCTION(assert) |
{ |
{ |
zval **assertion; |
zval **assertion; |
int val; | int val, description_len = 0; |
char *myeval = NULL; |
char *myeval = NULL; |
char *compiled_string_description; | char *compiled_string_description, *description = NULL; |
|
|
if (! ASSERTG(active)) { |
if (! ASSERTG(active)) { |
RETURN_TRUE; |
RETURN_TRUE; |
} |
} |
|
|
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &assertion) == FAILURE) { | if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z|s", &assertion, &description, &description_len) == FAILURE) { |
return; |
return; |
} |
} |
|
|
Line 167 PHP_FUNCTION(assert)
|
Line 167 PHP_FUNCTION(assert)
|
compiled_string_description = zend_make_compiled_string_description("assert code" TSRMLS_CC); |
compiled_string_description = zend_make_compiled_string_description("assert code" TSRMLS_CC); |
if (zend_eval_stringl(myeval, Z_STRLEN_PP(assertion), &retval, compiled_string_description TSRMLS_CC) == FAILURE) { |
if (zend_eval_stringl(myeval, Z_STRLEN_PP(assertion), &retval, compiled_string_description TSRMLS_CC) == FAILURE) { |
efree(compiled_string_description); |
efree(compiled_string_description); |
php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Failure evaluating code: %s%s", PHP_EOL, myeval); | if (description_len == 0) { |
| php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Failure evaluating code: %s%s", PHP_EOL, myeval); |
| } else { |
| php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Failure evaluating code: %s%s:\"%s\"", PHP_EOL, description, myeval); |
| } |
if (ASSERTG(bail)) { |
if (ASSERTG(bail)) { |
zend_bailout(); |
zend_bailout(); |
} |
} |
Line 196 PHP_FUNCTION(assert)
|
Line 200 PHP_FUNCTION(assert)
|
} |
} |
|
|
if (ASSERTG(callback)) { |
if (ASSERTG(callback)) { |
zval *args[3]; | zval **args = safe_emalloc(description_len == 0 ? 3 : 4, sizeof(zval **), 0); |
zval *retval; |
zval *retval; |
int i; |
int i; |
uint lineno = zend_get_executed_lineno(TSRMLS_C); |
uint lineno = zend_get_executed_lineno(TSRMLS_C); |
Line 214 PHP_FUNCTION(assert)
|
Line 218 PHP_FUNCTION(assert)
|
ZVAL_FALSE(retval); |
ZVAL_FALSE(retval); |
|
|
/* XXX do we want to check for error here? */ |
/* XXX do we want to check for error here? */ |
call_user_function(CG(function_table), NULL, ASSERTG(callback), retval, 3, args TSRMLS_CC); | if (description_len == 0) { |
| call_user_function(CG(function_table), NULL, ASSERTG(callback), retval, 3, args TSRMLS_CC); |
| for (i = 0; i <= 2; i++) { |
| zval_ptr_dtor(&(args[i])); |
| } |
| } else { |
| MAKE_STD_ZVAL(args[3]); |
| ZVAL_STRINGL(args[3], SAFE_STRING(description), description_len, 1); |
|
|
for (i = 0; i <= 2; i++) { | call_user_function(CG(function_table), NULL, ASSERTG(callback), retval, 4, args TSRMLS_CC); |
zval_ptr_dtor(&(args[i])); | for (i = 0; i <= 3; i++) { |
| zval_ptr_dtor(&(args[i])); |
| } |
} |
} |
|
|
|
efree(args); |
zval_ptr_dtor(&retval); |
zval_ptr_dtor(&retval); |
} |
} |
|
|
if (ASSERTG(warning)) { |
if (ASSERTG(warning)) { |
if (myeval) { | if (description_len == 0) { |
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion \"%s\" failed", myeval); | if (myeval) { |
| php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion \"%s\" failed", myeval); |
| } else { |
| php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion failed"); |
| } |
} else { |
} else { |
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion failed"); | if (myeval) { |
| php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s: \"%s\" failed", description, myeval); |
| } else { |
| php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s failed", description); |
| } |
} |
} |
} |
} |
|
|
Line 321 PHP_FUNCTION(assert_options)
|
Line 344 PHP_FUNCTION(assert_options)
|
* vim600: sw=4 ts=4 fdm=marker |
* vim600: sw=4 ts=4 fdm=marker |
* vim<600: sw=4 ts=4 |
* vim<600: sw=4 ts=4 |
*/ |
*/ |
|
|