]> granicus.if.org Git - php/commitdiff
Use new param API in PDO
authorSara Golemon <pollita@php.net>
Sat, 31 Dec 2016 16:45:54 +0000 (08:45 -0800)
committerSara Golemon <pollita@php.net>
Sat, 31 Dec 2016 17:01:15 +0000 (09:01 -0800)
ext/pdo/pdo_dbh.c
ext/pdo/pdo_stmt.c

index 4411c681bded68a6177ef69094dbd3c9733c010f..f28a341b194fd7da0d63d61f6299a2f36834c22e 100644 (file)
@@ -210,11 +210,13 @@ static PHP_METHOD(PDO, dbh_constructor)
        int call_factory = 1;
        zend_error_handling zeh;
 
-       if (FAILURE == zend_parse_parameters_throw(ZEND_NUM_ARGS(),
-                               "s|s!s!a!", &data_source, &data_source_len,
-                               &username, &usernamelen, &password, &passwordlen, &options)) {
-               return;
-       }
+       ZEND_PARSE_PARAMETERS_START_EX(ZEND_PARSE_PARAMS_THROW, 1, 4)
+               Z_PARAM_STRING(data_source, data_source_len)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_STRING_EX(username, usernamelen, 1, 0)
+               Z_PARAM_STRING_EX(password, passwordlen, 1, 0)
+               Z_PARAM_ARRAY_EX(options, 1, 0)
+       ZEND_PARSE_PARAMETERS_END();
 
        /* parse the data source name */
        colon = strchr(data_source, ':');
@@ -474,10 +476,11 @@ static PHP_METHOD(PDO, prepare)
        pdo_dbh_object_t *dbh_obj = Z_PDO_OBJECT_P(getThis());
        pdo_dbh_t *dbh = dbh_obj->inner;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "s|a", &statement,
-                       &statement_len, &options)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(1, 2)
+               Z_PARAM_STRING(statement, statement_len)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_ARRAY(options)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_DBH_CLEAR_ERR();
        PDO_CONSTRUCT_CHECK;
@@ -827,9 +830,10 @@ static PHP_METHOD(PDO, setAttribute)
        zend_long attr;
        zval *value;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "lz", &attr, &value)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(2, 2)
+               Z_PARAM_LONG(attr)
+               Z_PARAM_ZVAL_DEREF(value)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_DBH_CLEAR_ERR();
        PDO_CONSTRUCT_CHECK;
@@ -848,9 +852,9 @@ static PHP_METHOD(PDO, getAttribute)
        pdo_dbh_t *dbh = Z_PDO_DBH_P(getThis());
        zend_long attr;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "l", &attr)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(1, 1)
+               Z_PARAM_LONG(attr)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_DBH_CLEAR_ERR();
        PDO_CONSTRUCT_CHECK;
@@ -915,9 +919,9 @@ static PHP_METHOD(PDO, exec)
        size_t statement_len;
        zend_long ret;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "s", &statement, &statement_len)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(1, 1)
+               Z_PARAM_STRING(statement, statement_len)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        if (!statement_len) {
                pdo_raise_impl_error(dbh, NULL, "HY000",  "trying to execute an empty query");
@@ -943,9 +947,10 @@ static PHP_METHOD(PDO, lastInsertId)
        char *name = NULL;
        size_t namelen;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "|s!", &name, &namelen)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(0, 1)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_STRING_EX(name, namelen, 1, 0)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_DBH_CLEAR_ERR();
        PDO_CONSTRUCT_CHECK;
@@ -1136,9 +1141,11 @@ static PHP_METHOD(PDO, quote)
        char *qstr;
        size_t qlen;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "s|l", &str, &str_len, &paramtype)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(1, 2)
+               Z_PARAM_STRING(str, str_len)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_LONG(paramtype)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_DBH_CLEAR_ERR();
        PDO_CONSTRUCT_CHECK;
index e68ab959212ffae5380ecc401f8ae129fc2da8db..91451ed04339c5fd9c2dd29727b5eeee28a14401 100644 (file)
@@ -432,9 +432,10 @@ static PHP_METHOD(PDOStatement, execute)
        int ret = 1;
        PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "|a!", &input_params)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(0, 1)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_ARRAY_EX(input_params, 1, 0)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_STMT_CLEAR_ERR();
 
@@ -1261,10 +1262,12 @@ static PHP_METHOD(PDOStatement, fetch)
        zend_long off = 0;
     PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "|lll", &how,
-                       &ori, &off)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(0, 3)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_LONG(how)
+               Z_PARAM_LONG(ori)
+               Z_PARAM_LONG(off)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_STMT_CLEAR_ERR();
 
@@ -1293,9 +1296,11 @@ static PHP_METHOD(PDOStatement, fetchObject)
 
        PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "|S!a", &class_name, &ctor_args)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(0, 2)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_STR_EX(class_name, 1, 0)
+               Z_PARAM_ARRAY(ctor_args)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_STMT_CLEAR_ERR();
 
@@ -1351,9 +1356,10 @@ static PHP_METHOD(PDOStatement, fetchColumn)
        zend_long col_n = 0;
        PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &col_n)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(0, 1)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_LONG(col_n)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        PDO_STMT_CLEAR_ERR();
 
@@ -1378,9 +1384,12 @@ static PHP_METHOD(PDOStatement, fetchAll)
        int error = 0, flags, old_arg_count;
        PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "|lzz", &how, &arg2, &ctor_args)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(0, 3)
+               Z_PARAM_OPTIONAL
+               Z_PARAM_LONG(how)
+               Z_PARAM_ZVAL_DEREF(arg2)
+               Z_PARAM_ZVAL_DEREF(ctor_args)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        if (!pdo_stmt_verify_mode(stmt, how, 1)) {
                RETURN_FALSE;
@@ -1698,9 +1707,10 @@ static PHP_METHOD(PDOStatement, setAttribute)
        zval *value = NULL;
        PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "lz!", &attr, &value)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(2, 2)
+               Z_PARAM_LONG(attr)
+               Z_PARAM_ZVAL_DEREF_EX(value, 1, 0)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        if (!stmt->methods->set_attribute) {
                goto fail;
@@ -1739,9 +1749,9 @@ static PHP_METHOD(PDOStatement, getAttribute)
        zend_long attr;
        PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "l", &attr)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(1, 1)
+               Z_PARAM_LONG(attr)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
 
        if (!stmt->methods->get_attribute) {
                if (!generic_stmt_attr_get(stmt, return_value, attr)) {
@@ -1793,9 +1803,10 @@ static PHP_METHOD(PDOStatement, getColumnMeta)
        struct pdo_column_data *col;
        PHP_STMT_GET_OBJ;
 
-       if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS(), "l", &colno)) {
-               RETURN_FALSE;
-       }
+       ZEND_PARSE_PARAMETERS_START(1, 1)
+               Z_PARAM_LONG(colno)
+       ZEND_PARSE_PARAMETERS_END_EX(RETURN_FALSE);
+
        if(colno < 0) {
                pdo_raise_impl_error(stmt->dbh, stmt, "42P10", "column number must be non-negative");
                RETURN_FALSE;