]> granicus.if.org Git - php/commitdiff
Refactoring duplicated ZPP with a switch
authorGabriel Caruso <carusogabriel34@gmail.com>
Sun, 18 Feb 2018 13:12:12 +0000 (10:12 -0300)
committerJoe Watkins <krakjoe@php.net>
Mon, 19 Feb 2018 07:33:18 +0000 (08:33 +0100)
ext/interbase/ibase_blobs.c

index a329d5dfd07e8a876c7a3e47bd8bd93eeee3e23d..7898fd6c82f68b31ce1fa507e14a91be82633e2b 100644 (file)
 #define BLOB_CLOSE             1
 #define BLOB_CANCEL            2
 
+#define PARSE_PARAMETERS \
+       switch (ZEND_NUM_ARGS()) { \
+               default: \
+                       WRONG_PARAM_COUNT; \
+               case 1: \
+                       if (FAILURE == zend_parse_parameters(1, "s", &blob_id, &blob_id_len)) { \
+                               RETURN_FALSE; \
+                       } \
+                       break; \
+               case 2: \
+                       if (FAILURE == zend_parse_parameters(2, "rs", &link, &blob_id, &blob_id_len)) { \
+                               RETURN_FALSE; \
+                       } \
+                       break; \
+       } \
+
 static int le_blob;
 
 static void _php_ibase_free_blob(zend_resource *rsrc) /* {{{ */
@@ -242,21 +258,7 @@ PHP_FUNCTION(ibase_blob_open)
        ibase_blob *ib_blob;
 
        RESET_ERRMSG;
-
-       switch (ZEND_NUM_ARGS()) {
-               default:
-                       WRONG_PARAM_COUNT;
-               case 1:
-                       if (FAILURE == zend_parse_parameters(1, "s", &blob_id, &blob_id_len)) {
-                               RETURN_FALSE;
-                       }
-                       break;
-               case 2:
-                       if (FAILURE == zend_parse_parameters(2, "rs", &link, &blob_id, &blob_id_len)) {
-                               RETURN_FALSE;
-                       }
-                       break;
-       }
+       PARSE_PARAMETERS;
 
        PHP_IBASE_LINK_TRANS(link, ib_link, trans);
 
@@ -405,21 +407,7 @@ PHP_FUNCTION(ibase_blob_info)
        IBASE_BLOBINFO bl_info;
 
        RESET_ERRMSG;
-
-       switch (ZEND_NUM_ARGS()) {
-               default:
-                       WRONG_PARAM_COUNT;
-               case 1:
-                       if (FAILURE == zend_parse_parameters(1, "s", &blob_id, &blob_id_len)) {
-                               RETURN_FALSE;
-                       }
-                       break;
-               case 2:
-                       if (FAILURE == zend_parse_parameters(2, "rs", &link, &blob_id, &blob_id_len)) {
-                               RETURN_FALSE;
-                       }
-                       break;
-       }
+       PARSE_PARAMETERS;
 
        PHP_IBASE_LINK_TRANS(link, ib_link, trans);
 
@@ -482,21 +470,7 @@ PHP_FUNCTION(ibase_blob_echo)
        unsigned short seg_len;
 
        RESET_ERRMSG;
-
-       switch (ZEND_NUM_ARGS()) {
-               default:
-                       WRONG_PARAM_COUNT;
-               case 1:
-                       if (FAILURE == zend_parse_parameters(1, "s", &blob_id, &blob_id_len)) {
-                               RETURN_FALSE;
-                       }
-                       break;
-               case 2:
-                       if (FAILURE == zend_parse_parameters(2, "rs", &link, &blob_id, &blob_id_len)) {
-                               RETURN_FALSE;
-                       }
-                       break;
-       }
+       PARSE_PARAMETERS;
 
        PHP_IBASE_LINK_TRANS(link, ib_link, trans);