From: Anthony Ferrara Date: Wed, 18 Mar 2015 20:14:02 +0000 (-0400) Subject: Revert gd and mysqli to former calls for arg count errors. Fix first identified issue... X-Git-Tag: PRE_PHP7_NSAPI_REMOVAL~573^2~11^2~13 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1df033c5cd984157741f74908aeae171eea49380;p=php Revert gd and mysqli to former calls for arg count errors. Fix first identified issues with zend_compile.c from nikic. Add tests for generator returns prior to first yield --- diff --git a/Zend/tests/generators/generator_return_without_value.phpt b/Zend/tests/generators/generator_return_without_value.phpt index c50d5916d6..dfea5aa78d 100644 --- a/Zend/tests/generators/generator_return_without_value.phpt +++ b/Zend/tests/generators/generator_return_without_value.phpt @@ -13,13 +13,31 @@ function gen2() { return null; } +function gen3() { + return; + yield; +} + +function gen4() { + return; + yield; +} + var_dump(gen()); var_dump(gen2()); +var_dump(gen3()); + +var_dump(gen4()); + ?> --EXPECTF-- object(Generator)#%d (0) { } object(Generator)#%d (0) { +} +object(Generator)#%d (0) { +} +object(Generator)#%d (0) { } \ No newline at end of file diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index bfbb552f3f..1ec6a11c97 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1931,7 +1931,7 @@ static void zend_emit_return_type_check(znode *expr, zend_arg_info *return_info) { if (return_info->type_hint != IS_UNDEF) { zend_op *opline = zend_emit_op(NULL, ZEND_VERIFY_RETURN_TYPE, expr, NULL); - opline->extended_value = (CG(declarables).strict_types ? 1 : 0); + opline->extended_value = CG(declarables).strict_types; } } /* }}} */ @@ -3402,7 +3402,7 @@ void zend_compile_return(zend_ast *ast) /* {{{ */ opline->op1.var = CG(context).fast_call_var; } - // Generator return types are handled separately + /* Generator return types are handled separately */ if (!(CG(active_op_array)->fn_flags & ZEND_ACC_GENERATOR) && CG(active_op_array)->fn_flags & ZEND_ACC_HAS_RETURN_TYPE) { zend_arg_info *arg_info = CG(active_op_array)->arg_info - 1; diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 94e2507634..9c252f45fc 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -3940,13 +3940,13 @@ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int if (mode == TTFTEXT_BBOX) { if (argc < 4 || argc > ((extended) ? 5 : 4)) { - WRONG_PARAM_COUNT; + ZEND_WRONG_PARAM_COUNT(); } else if (zend_parse_parameters(argc, "ddss|a", &ptsize, &angle, &fontname, &fontname_len, &str, &str_len, &EXT) == FAILURE) { RETURN_FALSE; } } else { if (argc < 8 || argc > ((extended) ? 9 : 8)) { - WRONG_PARAM_COUNT; + ZEND_WRONG_PARAM_COUNT(); } else if (zend_parse_parameters(argc, "rddlllss|a", &IM, &ptsize, &angle, &x, &y, &col, &fontname, &fontname_len, &str, &str_len, &EXT) == FAILURE) { RETURN_FALSE; } @@ -4395,7 +4395,7 @@ PHP_FUNCTION(imagepsbbox) BBox char_bbox, str_bbox = {0, 0, 0, 0}; if (argc != 3 && argc != 6) { - WRONG_PARAM_COUNT; + ZEND_WRONG_PARAM_COUNT(); } if (zend_parse_parameters(ZEND_NUM_ARGS(), "Srl|lld", &str, &fnt, &sz, &sp, &wd, &angle) == FAILURE) { diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c index 58c1132550..eec5e74acb 100644 --- a/ext/mysqli/mysqli_api.c +++ b/ext/mysqli/mysqli_api.c @@ -368,7 +368,7 @@ PHP_FUNCTION(mysqli_stmt_bind_param) args = safe_emalloc(argc, sizeof(zval), 0); if (zend_get_parameters_array_ex(argc, args) == FAILURE) { - WRONG_PARAM_COUNT; + zend_wrong_param_count(); rc = 1; } else { rc = mysqli_stmt_bind_param_do_bind(stmt, argc, num_vars, args, start, types);