]> granicus.if.org Git - php/commitdiff
Promote warnings to exceptions for some filter functions
authorMáté Kocsis <kocsismate@woohoolabs.com>
Tue, 10 Dec 2019 22:50:10 +0000 (23:50 +0100)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Wed, 11 Dec 2019 17:47:17 +0000 (18:47 +0100)
ext/standard/tests/filters/001.phpt
ext/standard/user_filters.c

index 53d9fc2b503a60d84a50d1ed4c6302c63b992270..0c502d46118585119b69217deeba7955fc201105 100644 (file)
@@ -2,22 +2,31 @@
 stream_filter_register() and invalid arguments
 --FILE--
 <?php
+try {
+    stream_filter_register("", "");
+} catch (ValueError $exception) {
+    echo $exception->getMessage() . "\n";
+}
+
+try {
+    stream_filter_register("test", "");
+} catch (ValueError $exception) {
+    echo $exception->getMessage() . "\n";
+}
+
+try {
+    stream_filter_register("", "test");
+} catch (ValueError $exception) {
+    echo $exception->getMessage() . "\n";
+}
 
-var_dump(stream_filter_register("", ""));
-var_dump(stream_filter_register("test", ""));
-var_dump(stream_filter_register("", "test"));
 var_dump(stream_filter_register("------", "nonexistentclass"));
 
 echo "Done\n";
 ?>
 --EXPECTF--
-Warning: stream_filter_register(): Filter name cannot be empty in %s on line %d
-bool(false)
-
-Warning: stream_filter_register(): Class name cannot be empty in %s on line %d
-bool(false)
-
-Warning: stream_filter_register(): Filter name cannot be empty in %s on line %d
-bool(false)
+Filter name cannot be empty
+Class name cannot be empty
+Filter name cannot be empty
 bool(true)
 Done
index 9f3acf73fdb96a94557ed4c591236bbe4f46e468..18843e85d55fbb4bfbd5efde9ed6613a23b73ed1 100644 (file)
@@ -389,7 +389,7 @@ static void filter_item_dtor(zval *zv)
        efree(fdat);
 }
 
-/* {{{ proto object|false stream_bucket_make_writeable(resource brigade)
+/* {{{ proto object|null stream_bucket_make_writeable(resource brigade)
    Return a bucket object from the brigade for operating on */
 PHP_FUNCTION(stream_bucket_make_writeable)
 {
@@ -434,8 +434,8 @@ static void php_stream_bucket_attach(int append, INTERNAL_FUNCTION_PARAMETERS)
        ZEND_PARSE_PARAMETERS_END();
 
        if (NULL == (pzbucket = zend_hash_str_find(Z_OBJPROP_P(zobject), "bucket", sizeof("bucket")-1))) {
-               php_error_docref(NULL, E_WARNING, "Object has no bucket property");
-               RETURN_FALSE;
+               zend_value_error("Object has no bucket property");
+               return;
        }
 
        if ((brigade = (php_stream_bucket_brigade*)zend_fetch_resource(
@@ -505,7 +505,6 @@ PHP_FUNCTION(stream_bucket_new)
        ZEND_PARSE_PARAMETERS_END();
 
        php_stream_from_zval(stream, zstream);
-
        pbuffer = pemalloc(buffer_len, php_stream_is_persistent(stream));
 
        memcpy(pbuffer, buffer, buffer_len);
@@ -564,15 +563,13 @@ PHP_FUNCTION(stream_filter_register)
                Z_PARAM_STR(classname)
        ZEND_PARSE_PARAMETERS_END();
 
-       RETVAL_FALSE;
-
        if (!ZSTR_LEN(filtername)) {
-               php_error_docref(NULL, E_WARNING, "Filter name cannot be empty");
+               zend_value_error("Filter name cannot be empty");
                return;
        }
 
        if (!ZSTR_LEN(classname)) {
-               php_error_docref(NULL, E_WARNING, "Class name cannot be empty");
+               zend_value_error("Class name cannot be empty");
                return;
        }
 
@@ -590,6 +587,7 @@ PHP_FUNCTION(stream_filter_register)
        } else {
                zend_string_release_ex(classname, 0);
                efree(fdat);
+               RETVAL_FALSE;
        }
 }
 /* }}} */