nlopess         Sat Jul  1 12:29:38 2006 UTC

  Modified files:              
    /php-src/ext/standard       assert.c 
    /php-src/ext/standard/tests/assert  assert02.phpt 
  Log:
  MFB5.2: fix assert() problems
  
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c?r1=1.65&r2=1.66&diff_format=u
Index: php-src/ext/standard/assert.c
diff -u php-src/ext/standard/assert.c:1.65 php-src/ext/standard/assert.c:1.66
--- php-src/ext/standard/assert.c:1.65  Fri Jun 23 11:40:14 2006
+++ php-src/ext/standard/assert.c       Sat Jul  1 12:29:38 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: assert.c,v 1.65 2006/06/23 11:40:14 iliaa Exp $ */
+/* $Id: assert.c,v 1.66 2006/07/01 12:29:38 nlopess Exp $ */
 
 /* {{{ includes/startup/misc */
 
@@ -162,7 +162,10 @@
                if (zend_eval_string(myeval, &retval, 
compiled_string_description TSRMLS_CC) == FAILURE) {
                        efree(compiled_string_description);
                        php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, 
"Failure evaluating code: %s%s", PHP_EOL, myeval);
-                       /* php_error_docref() does not return in this case. */
+                       if (ASSERTG(bail)) {
+                               zend_bailout();
+                       }
+                       RETURN_FALSE;
                }
                if (free_tmp) {
                        zval_dtor(&tmp);
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/assert/assert02.phpt?r1=1.1&r2=1.2&diff_format=u
Index: php-src/ext/standard/tests/assert/assert02.phpt
diff -u /dev/null php-src/ext/standard/tests/assert/assert02.phpt:1.2
--- /dev/null   Sat Jul  1 12:29:38 2006
+++ php-src/ext/standard/tests/assert/assert02.phpt     Sat Jul  1 12:29:38 2006
@@ -0,0 +1,58 @@
+--TEST--
+catch assert() errors
+--FILE--
+<?php
+function handler($errno, $errstr) {
+       echo "in handler()\n";
+       assert(E_RECOVERABLE_ERROR === $errno);
+       var_dump($errstr);
+}
+
+set_error_handler('handler', E_RECOVERABLE_ERROR);
+
+assert(1);
+assert('1');
+assert('$a');
+
+assert('aa=sd+as+safsafasfasafsaf');
+
+assert('0');
+
+assert_options(ASSERT_BAIL, 1);
+assert('aa=sd+as+safsafasfasafsaf');
+
+echo "done\n";
+
+?>
+--EXPECTF--
+Notice: Undefined variable: a in %sassert02.php(12) : assert code on line 1
+
+Warning: assert(): Assertion "$a" failed in %sassert02.php on line 12
+
+Parse error: syntax error, unexpected '=' in %sassert02.php(14) : assert code 
on line 1
+in handler()
+string(61) "assert(): Failure evaluating code: 
+aa=sd+as+safsafasfasafsaf"
+
+Warning: assert(): Assertion "0" failed in %sassert02.php on line 16
+
+Parse error: syntax error, unexpected '=' in %sassert02.php(19) : assert code 
on line 1
+in handler()
+string(61) "assert(): Failure evaluating code: 
+aa=sd+as+safsafasfasafsaf"
+--EXPECTUF--
+Notice: Undefined variable: a in %sassert02.php(12) : assert code on line 1
+
+Warning: assert(): Assertion "$a" failed in %sassert02.php on line 12
+
+Parse error: syntax error, unexpected '=' in %sassert02.php(14) : assert code 
on line 1
+in handler()
+unicode(61) "assert(): Failure evaluating code: 
+aa=sd+as+safsafasfasafsaf"
+
+Warning: assert(): Assertion "0" failed in %sassert02.php on line 16
+
+Parse error: syntax error, unexpected '=' in %sassert02.php(19) : assert code 
on line 1
+in handler()
+unicode(61) "assert(): Failure evaluating code: 
+aa=sd+as+safsafasfasafsaf"

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to