Skip to content

Commit 8c9c0db

Browse files
Stop trying to show the original value
Hopefully will fix assertion failures in gc?
1 parent 965178a commit 8c9c0db

File tree

5 files changed

+12
-24
lines changed

5 files changed

+12
-24
lines changed

ext/filter/filter.c

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -279,28 +279,16 @@ static void php_zval_filter(zval *value, zend_long filter, zend_long flags, zval
279279
/* Here be strings */
280280
convert_to_string(value);
281281

282-
zend_string *copy_for_throwing = NULL;
283-
if (flags & FILTER_THROW_ON_FAILURE) {
284-
copy_for_throwing = zend_string_copy(Z_STR_P(value));
285-
}
286-
287282
zend_result result = filter_func.function(value, flags, options, charset);
288283

289-
if (flags & FILTER_THROW_ON_FAILURE) {
290-
ZEND_ASSERT(copy_for_throwing != NULL);
291-
if (result == FAILURE) {
292-
zend_throw_exception_ex(
293-
php_filter_failed_exception_ce,
294-
0,
295-
"filter validation failed: filter %s not satisfied by %s",
296-
filter_func.name,
297-
ZSTR_VAL(copy_for_throwing)
298-
);
299-
zend_string_delref(copy_for_throwing);
300-
return;
301-
}
302-
zend_string_delref(copy_for_throwing);
303-
copy_for_throwing = NULL;
284+
if ((flags & FILTER_THROW_ON_FAILURE) && result == FAILURE) {
285+
zend_throw_exception_ex(
286+
php_filter_failed_exception_ce,
287+
0,
288+
"filter validation failed: filter %s not satisfied",
289+
filter_func.name
290+
);
291+
return;
304292
}
305293

306294
handle_default:

ext/filter/tests/throw-on-failure/filter_input_array_failure.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,4 @@ validation fails (array type check)
2626
Filter\FilterFailedException: filter validation failed: not an array (got string)
2727

2828
validation fails (filter value)
29-
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied by 1
29+
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied

ext/filter/tests/throw-on-failure/filter_input_failure.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ validation fails (array type check)
3636
Filter\FilterFailedException: filter validation failed: not an array (got string)
3737

3838
validation fails (filter value)
39-
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied by 1
39+
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied

ext/filter/tests/throw-on-failure/filter_var_array_failure.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ validation fails (object without __toString)
3636
Filter\FilterFailedException: filter validation failed: object of type stdClass has no __toString() method
3737

3838
validation fails (filter value)
39-
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied by 1
39+
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied

ext/filter/tests/throw-on-failure/filter_var_failure.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ validation fails (object without __toString)
3434
Filter\FilterFailedException: filter validation failed: object of type stdClass has no __toString() method
3535

3636
validation fails (filter value)
37-
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied by a
37+
Filter\FilterFailedException: filter validation failed: filter validate_email not satisfied

0 commit comments

Comments
 (0)