]> granicus.if.org Git - php/commitdiff
Fix zpp in mysqli_warning::next()
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 18 Feb 2020 09:01:17 +0000 (10:01 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 18 Feb 2020 09:01:17 +0000 (10:01 +0100)
This only exists as a method, so using zend_parse_method_parameters
doesn't make sense. Also make sure that zpp is always called, not
only conditionally.

ext/mysqli/mysqli_warning.c

index 380d2e3fd9232eaf7f34f20bc1627095b4e62d36..a76c1b1a3fc8539bde129fee49a84ba01e67177d 100644 (file)
@@ -175,16 +175,14 @@ MYSQLI_WARNING * php_get_warnings(MYSQLND_CONN_DATA * mysql)
 PHP_METHOD(mysqli_warning, next)
 {
        MYSQLI_WARNING  *w;
-       zval                    *mysqli_warning;
-       mysqli_object *obj = Z_MYSQLI_P(getThis());
+       mysqli_object *obj = Z_MYSQLI_P(ZEND_THIS);
 
-       if (obj->ptr) {
-               if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "O",
-                                                                                &mysqli_warning, mysqli_warning_class_entry) == FAILURE) {
-                       RETURN_THROWS();
-               }
+       if (zend_parse_parameters_none() == FAILURE) {
+               RETURN_THROWS();
+       }
 
-               MYSQLI_FETCH_RESOURCE(w, MYSQLI_WARNING *, mysqli_warning, "mysqli_warning", MYSQLI_STATUS_VALID);
+       if (obj->ptr) {
+               MYSQLI_FETCH_RESOURCE(w, MYSQLI_WARNING *, ZEND_THIS, "mysqli_warning", MYSQLI_STATUS_VALID);
 
                if (w && w->next) {
                        w = w->next;