Skip to content

Commit b2ea052

Browse files
author
Lonny Kapelushnik
committed
Made additional modifications per Lars request
1 parent c126da5 commit b2ea052

File tree

4 files changed

+20
-19
lines changed

4 files changed

+20
-19
lines changed

ext/standard/assert.c

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -200,15 +200,12 @@ PHP_FUNCTION(assert)
200200
}
201201

202202
if (ASSERTG(callback)) {
203-
zval *args[ description_len == 0?3:4 ];
203+
zval **args = safe_emalloc( description_len == 0 ? 3 : 4, sizeof(zval **), 0);
204204
zval *retval;
205205
int i;
206206
uint lineno = zend_get_executed_lineno(TSRMLS_C);
207207
const char *filename = zend_get_executed_filename(TSRMLS_C);
208-
if (description_len != 0) {
209-
MAKE_STD_ZVAL(args[3]);
210-
ZVAL_STRINGL(args[3], SAFE_STRING(description), description_len, 1);
211-
}
208+
212209
MAKE_STD_ZVAL(args[0]);
213210
MAKE_STD_ZVAL(args[1]);
214211
MAKE_STD_ZVAL(args[2]);
@@ -227,28 +224,32 @@ PHP_FUNCTION(assert)
227224
zval_ptr_dtor(&(args[i]));
228225
}
229226
} else {
227+
MAKE_STD_ZVAL(args[3]);
228+
ZVAL_STRINGL(args[3], SAFE_STRING(description), description_len, 1);
229+
230230
call_user_function(CG(function_table), NULL, ASSERTG(callback), retval, 4, args TSRMLS_CC);
231231
for (i = 0; i <= 3; i++) {
232232
zval_ptr_dtor(&(args[i]));
233233
}
234234
}
235235

236+
efree(args);
236237
zval_ptr_dtor(&retval);
237238
}
238239

239240
if (ASSERTG(warning)) {
240241
if (description_len == 0) {
241242
if (myeval) {
242-
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion \"%s\" failed", myeval);
243-
} else {
244-
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion failed");
245-
}
243+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion \"%s\" failed", myeval);
244+
} else {
245+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Assertion failed");
246+
}
246247
} else {
247248
if (myeval) {
248-
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:\"%s\" failed", description, myeval);
249-
} else {
250-
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s failed", description);
251-
}
249+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:\"%s\" failed", description, myeval);
250+
} else {
251+
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s failed", description);
252+
}
252253
}
253254
}
254255

ext/standard/tests/assert/assert04.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ assert(1);
1515

1616
/* Wrong parameter count in assert */
1717
assert_options(ASSERT_ACTIVE, 1);
18-
assert(2,"failure",3);
18+
assert(2, "failure", 3);
1919

2020
/* Wrong parameter count in assert_options */
2121
assert_options(ASSERT_ACTIVE, 0, 2);

ext/standard/tests/assert/assert_error1.phpt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,19 @@ function handler($errno, $errstr) {
2020

2121
//Wrong number of parameters for assert_options()
2222
assert_options(ASSERT_WARNING, 1);
23-
var_dump($rao=assert_options(ASSERT_CALLBACK,"f1",1));
23+
var_dump($rao = assert_options(ASSERT_CALLBACK, "f1", 1));
2424

2525

2626
//Unknown option for assert_options()
27-
var_dump($rao=assert_options("F1","f1"));
27+
var_dump($rao=assert_options("F1", "f1"));
2828

2929
//Wrong number of parameters for assert()
3030
$sa="0 != 0";
31-
var_dump($r2=assert($sa,"message",1));
31+
var_dump($r2 = assert($sa, "message", 1));
3232

3333

3434
//Catch recoverable error with handler
35-
var_dump($rc=assert('aa=sd+as+safsafasfaçsafçsafç'));
35+
var_dump($rc = assert('aa=sd+as+safsafasfaçsafçsafç'));
3636
--EXPECTF--
3737
Warning: assert_options() expects at most 2 parameters, 3 given in %s on line %d
3838
NULL

ext/standard/tests/assert/assert_error3.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ display_errors = 1
1111
--FILE--
1212
<?php
1313
$sa = "0 $ 0";
14-
var_dump($r2=assert($sa));
14+
var_dump($r2 = assert($sa));
1515
--EXPECTF--
1616

1717
Parse error: syntax error, unexpected '$' in %s(3) : assert code on line 1

0 commit comments

Comments
 (0)