stas            Thu Nov  1 00:46:13 2007 UTC

  Modified files:              (Branch: PHP_5_3)
    /php-src/ext/gmp    gmp.c 
    /php-src/ext/gmp/tests      004.phpt 005.phpt 006.phpt 007.phpt 008.phpt 
                                009.phpt 010.phpt 011.phpt 012.phpt 013.phpt 
                                014.phpt 015.phpt 016.phpt 017.phpt 018.phpt 
                                019.phpt 020.phpt 021.phpt 022.phpt 023.phpt 
                                024.phpt 025.phpt 026.phpt 027.phpt 028.phpt 
                                029.phpt 030.phpt 031.phpt 032.phpt 033.phpt 
                                034.phpt 035.phpt 036.phpt 037.phpt 038.phpt 
                                039.phpt 
  Log:
  - Fix memory leaks (bug #42509)
  - Fix _gmp_binary_opl
  - Use modern parameter parsing
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/gmp.c?r1=1.49.2.2.2.11.2.1&r2=1.49.2.2.2.11.2.2&diff_format=u
Index: php-src/ext/gmp/gmp.c
diff -u php-src/ext/gmp/gmp.c:1.49.2.2.2.11.2.1 
php-src/ext/gmp/gmp.c:1.49.2.2.2.11.2.2
--- php-src/ext/gmp/gmp.c:1.49.2.2.2.11.2.1     Thu Sep 27 18:00:39 2007
+++ php-src/ext/gmp/gmp.c       Thu Nov  1 00:46:12 2007
@@ -423,16 +423,23 @@
 
 /* Fetch zval to be GMP number.
    Initially, zval can be also number or string */
-#define FETCH_GMP_ZVAL(gmpnumber, zval) \
-if (Z_TYPE_PP(zval) == IS_RESOURCE) { \
-       ZEND_FETCH_RESOURCE(gmpnumber, mpz_t *, zval, -1, GMP_RESOURCE_NAME, 
le_gmp);\
-} else {\
-       if (convert_to_gmp(&gmpnumber, zval, 0 TSRMLS_CC) == FAILURE) {\
-               RETURN_FALSE;\
-       }\
-       ZEND_REGISTER_RESOURCE(NULL, gmpnumber, le_gmp);\
+#define FETCH_GMP_ZVAL(gmpnumber, zval, tmp_resource)                          
                                \
+if (Z_TYPE_PP(zval) == IS_RESOURCE) {                                          
                                                \
+       ZEND_FETCH_RESOURCE(gmpnumber, mpz_t *, zval, -1, GMP_RESOURCE_NAME, 
le_gmp);   \
+       tmp_resource = 0;                                                       
                                                                        \
+} else {                                                                       
                                                                                
\
+       if (convert_to_gmp(&gmpnumber, zval, 0 TSRMLS_CC) == FAILURE) {         
                        \
+               RETURN_FALSE;                                                   
                                                                        \
+       }                                                                       
                                                                                
        \
+       tmp_resource = ZEND_REGISTER_RESOURCE(NULL, gmpnumber, le_gmp);         
                        \
 }
 
+#define FREE_GMP_TEMP(tmp_resource)                    \
+       if(tmp_resource) {                                              \
+               zend_list_delete(tmp_resource);         \
+       }
+
+
 /* create a new initialized GMP number */
 #define INIT_GMP_NUM(gmpnumber) { gmpnumber=emalloc(sizeof(mpz_t)); 
mpz_init(*gmpnumber); }
 #define FREE_GMP_NUM(gmpnumber) { mpz_clear(*gmpnumber); efree(gmpnumber); }
@@ -524,13 +531,14 @@
        mpz_t *gmpnum_a, *gmpnum_b, *gmpnum_result;
        unsigned long long_result = 0;
        int use_ui = 0;
+       int arga_tmp = 0, argb_tmp = 0;
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, arga_tmp);
        
        if (gmp_ui_op && Z_TYPE_PP(b_arg) == IS_LONG && Z_LVAL_PP(b_arg) >= 0) {
                use_ui = 1;
        } else {
-               FETCH_GMP_ZVAL(gmpnum_b, b_arg);
+               FETCH_GMP_ZVAL(gmpnum_b, b_arg, argb_tmp);
        }
 
        if(check_b_zero) {
@@ -543,6 +551,8 @@
 
                if(b_is_zero) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Zero 
operand not allowed");
+                       FREE_GMP_TEMP(arga_tmp);
+                       FREE_GMP_TEMP(argb_tmp);
                        RETURN_FALSE;
                }
        }
@@ -559,6 +569,9 @@
                gmp_op(*gmpnum_result, *gmpnum_a, *gmpnum_b);
        }
 
+       FREE_GMP_TEMP(arga_tmp);
+       FREE_GMP_TEMP(argb_tmp);
+
        if (use_ui && allow_ui_return) {
                FREE_GMP_NUM(gmpnum_result);
                RETURN_LONG((long)long_result);
@@ -578,14 +591,15 @@
        zval r;
        int use_ui = 0;
        unsigned long long_result = 0;
+       int arga_tmp = 0, argb_tmp = 0;
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, arga_tmp);
 
        if (gmp_ui_op && Z_TYPE_PP(b_arg) == IS_LONG && Z_LVAL_PP(b_arg) >= 0) {
                /* use _ui function */
                use_ui = 1;
        } else {
-               FETCH_GMP_ZVAL(gmpnum_b, b_arg);
+               FETCH_GMP_ZVAL(gmpnum_b, b_arg, argb_tmp);
        }
 
        if(check_b_zero) {
@@ -598,6 +612,8 @@
 
                if(b_is_zero) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "Zero 
operand not allowed");
+                       FREE_GMP_TEMP(arga_tmp);
+                       FREE_GMP_TEMP(argb_tmp);
                        RETURN_FALSE;
                }
        }
@@ -615,6 +631,9 @@
                gmp_op(*gmpnum_result1, *gmpnum_result2, *gmpnum_a, *gmpnum_b);
        }
 
+       FREE_GMP_TEMP(arga_tmp);
+       FREE_GMP_TEMP(argb_tmp);
+
        array_init(return_value);
        ZEND_REGISTER_RESOURCE(&r, gmpnum_result1, le_gmp);
        add_index_resource(return_value, 0, Z_LVAL(r));
@@ -634,8 +653,8 @@
 {
        zval **a_arg, **b_arg;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
        
        gmp_zval_binary_ui_op(return_value, a_arg, b_arg, gmp_op, gmp_ui_op);
@@ -649,12 +668,14 @@
 static inline void gmp_zval_unary_op(zval *return_value, zval **a_arg, 
gmp_unary_op_t gmp_op TSRMLS_DC) 
 {
        mpz_t *gmpnum_a, *gmpnum_result;
+       int temp_a;
        
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
 
        INIT_GMP_NUM(gmpnum_result);
        gmp_op(*gmpnum_result, *gmpnum_a);
 
+       FREE_GMP_TEMP(temp_a);
        ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp);
 }
 /* }}} */
@@ -681,10 +702,10 @@
 {
        zval **a_arg;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
-       
+
        gmp_zval_unary_ui_op(return_value, a_arg, gmp_op);
 }
 /* }}} */
@@ -695,8 +716,8 @@
 {
        zval **a_arg;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
        
        gmp_zval_unary_op(return_value, a_arg, gmp_op TSRMLS_CC);
@@ -709,14 +730,15 @@
 {
        zval **a_arg;
        mpz_t *gmpnum_a;
+       int temp_a;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
        
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-
-       RETURN_LONG(gmp_op(*gmpnum_a));
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
+       RETVAL_LONG(gmp_op(*gmpnum_a));
+       FREE_GMP_TEMP(temp_a);
 }
 /* }}} */
 
@@ -726,15 +748,19 @@
 {
        zval **a_arg, **b_arg;
        mpz_t *gmpnum_a, *gmpnum_b;
+       int temp_a, temp_b;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-       FETCH_GMP_ZVAL(gmpnum_b, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
+       FETCH_GMP_ZVAL(gmpnum_b, b_arg, temp_b);
 
-       RETURN_LONG(gmp_op(*gmpnum_a, *gmpnum_b));
+       RETVAL_LONG(gmp_op(*gmpnum_a, *gmpnum_b));
+
+       FREE_GMP_TEMP(temp_a);
+       FREE_GMP_TEMP(temp_b);
 }
 /* }}} */
 
@@ -742,23 +768,17 @@
    Initializes GMP number */
 ZEND_FUNCTION(gmp_init)
 {
-       zval **number_arg, **base_arg;
+       zval **number_arg;
        mpz_t * gmpnumber;
-       int argc;
        int base=0;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 1 || argc > 2 || zend_get_parameters_ex(argc, &number_arg, 
&base_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z|l", 
&number_arg, &base) == FAILURE) {
+               return;
        }
 
-       if (argc == 2) {
-                       convert_to_long_ex(base_arg);
-                       base = Z_LVAL_PP(base_arg);
-               if (base < 2 || base > 36) {
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base 
for conversion: %d (should be between 2 and 36)", base);
-                       RETURN_FALSE;
-               }
+       if (base && (base < 2 || base > 36)) {
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Bad base for 
conversion: %d (should be between 2 and 36)", base);
+               RETURN_FALSE;
        }
 
        if (convert_to_gmp(&gmpnumber, number_arg, base TSRMLS_CC) == FAILURE) {
@@ -777,8 +797,8 @@
        zval **gmpnumber_arg;
        mpz_t * gmpnum;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &gmpnumber_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", 
&gmpnumber_arg) == FAILURE){
+               return;
        }
        
        if (Z_TYPE_PP(gmpnumber_arg) == IS_RESOURCE) {
@@ -795,26 +815,14 @@
    Gets string representation of GMP number  */
 ZEND_FUNCTION(gmp_strval)
 {
-       zval **gmpnumber_arg, **base_arg;
-       int base=10, num_len, argc;
+       zval **gmpnumber_arg;
+       int base=10, num_len;
        mpz_t * gmpnum;
        char *out_string;
+       int temp_a;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 1 || argc > 2 || zend_get_parameters_ex(argc, 
&gmpnumber_arg, &base_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
-       }
-
-       FETCH_GMP_ZVAL(gmpnum, gmpnumber_arg);
-
-       switch (argc) {
-               case 2:
-                       convert_to_long_ex(base_arg);
-                       base = Z_LVAL_PP(base_arg);
-                       break;
-               case 1:
-                       base = 10;
-                       break;
+       if( zend_parse_parameters( ZEND_NUM_ARGS() TSRMLS_CC, "Z|l", 
&gmpnumber_arg, &base ) == FAILURE ) {
+               return;
        }
 
        if (base < 2 || base > 36) {
@@ -822,13 +830,17 @@
                RETURN_FALSE;
        }
 
+       FETCH_GMP_ZVAL(gmpnum, gmpnumber_arg, temp_a);
+
        num_len = mpz_sizeinbase(*gmpnum, base);
        out_string = emalloc(num_len+2);
        if (mpz_sgn(*gmpnum) < 0) {
                num_len++;
        }
        mpz_get_str(out_string, base, *gmpnum);
-
+       
+       FREE_GMP_TEMP(temp_a);
+       
        /* 
        From GMP documentation for mpz_sizeinbase():
        The returned value will be exact or 1 too big.  If base is a power of
@@ -874,22 +886,11 @@
    Divide a by b, returns quotient and reminder */
 ZEND_FUNCTION(gmp_div_qr)
 {
-       zval **a_arg, **b_arg, **round_arg;
-       int round = GMP_ROUND_ZERO, argc;
+       zval **a_arg, **b_arg;
+       int round = GMP_ROUND_ZERO;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 2 || argc > 3 || zend_get_parameters_ex(argc, &a_arg, 
&b_arg, &round_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
-       }
-
-       switch (argc) {
-               case 3:
-                       convert_to_long_ex(round_arg);
-                       round = Z_LVAL_PP(round_arg);
-                       break;
-               case 2:
-                       round = GMP_ROUND_ZERO;
-                       break;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ|l", &a_arg, 
&b_arg, &round) == FAILURE) {
+               return;
        }
 
        switch (round) {
@@ -911,22 +912,11 @@
    Divide a by b, returns reminder only */
 ZEND_FUNCTION(gmp_div_r)
 {
-       zval **a_arg, **b_arg, **round_arg;
-       int round = GMP_ROUND_ZERO, argc;
+       zval **a_arg, **b_arg;
+       int round = GMP_ROUND_ZERO;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 2 || argc > 3 || zend_get_parameters_ex(argc, &a_arg, 
&b_arg, &round_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
-       }
-
-       switch (argc) {
-               case 3:
-                       convert_to_long_ex(round_arg);
-                       round = Z_LVAL_PP(round_arg);
-                       break;
-               case 2:
-                       round = GMP_ROUND_ZERO;
-                       break;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ|l", &a_arg, 
&b_arg, &round) == FAILURE) {
+               return;
        }
 
        switch (round) {
@@ -947,22 +937,11 @@
    Divide a by b, returns quotient only */
 ZEND_FUNCTION(gmp_div_q)
 {
-       zval **a_arg, **b_arg, **round_arg;
-       int round = GMP_ROUND_ZERO, argc;
+       zval **a_arg, **b_arg;
+       int round = GMP_ROUND_ZERO;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 2 || argc > 3 || zend_get_parameters_ex(argc, &a_arg, 
&b_arg, &round_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
-       }
-
-       switch (argc) {
-               case 3:
-                       convert_to_long_ex(round_arg);
-                       round = Z_LVAL_PP(round_arg);
-                       break;
-               case 2:
-                       round = GMP_ROUND_ZERO;
-                       break;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ|l", &a_arg, 
&b_arg, &round) == FAILURE) {
+               return;
        }
 
        switch (round) {
@@ -986,8 +965,8 @@
 {
        zval **a_arg, **b_arg;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
 
        gmp_zval_binary_ui_op_ex(return_value, a_arg, b_arg, mpz_mod, 
(gmp_binary_ui_op_t)mpz_mod_ui, 1, 1 TSRMLS_CC);
@@ -1000,8 +979,8 @@
 {
        zval **a_arg, **b_arg;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
        
        gmp_zval_binary_ui_op_ex(return_value, a_arg, b_arg, mpz_divexact, 
NULL, 0, 1 TSRMLS_CC);
@@ -1030,21 +1009,22 @@
 {
        zval **a_arg;
        mpz_t *gmpnum_tmp;
+       int temp_a;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
 
        if (Z_TYPE_PP(a_arg) == IS_RESOURCE) {
-               FETCH_GMP_ZVAL(gmpnum_tmp, a_arg);
+               FETCH_GMP_ZVAL(gmpnum_tmp, a_arg, temp_a);      /* no need to 
free this since it's IS_RESOURCE */
                if (mpz_sgn(*gmpnum_tmp) < 0) {
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING,"Number has 
to be greater than or equal to 0");
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number has 
to be greater than or equal to 0");
                        RETURN_FALSE;
                }
        } else {
                convert_to_long_ex(a_arg);
                if (Z_LVAL_PP(a_arg) < 0) {
-                       php_error_docref(NULL TSRMLS_CC, E_WARNING,"Number has 
to be greater than or equal to 0");
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number has 
to be greater than or equal to 0");
                        RETURN_FALSE;
                }
        }
@@ -1060,15 +1040,16 @@
        zval **base_arg, **exp_arg;
        mpz_t *gmpnum_result, *gmpnum_base;
        int use_ui = 0;
+       int temp_base;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &base_arg, 
&exp_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &base_arg, 
&exp_arg) == FAILURE){
+               return;
        }
 
        if (Z_TYPE_PP(base_arg) == IS_LONG && Z_LVAL_PP(base_arg) >= 0) {
                use_ui = 1;
        } else {
-               FETCH_GMP_ZVAL(gmpnum_base, base_arg);
+               FETCH_GMP_ZVAL(gmpnum_base, base_arg, temp_base);
        }
 
        convert_to_long_ex(exp_arg);
@@ -1084,7 +1065,7 @@
        } else {
                mpz_pow_ui(*gmpnum_result, *gmpnum_base, Z_LVAL_PP(exp_arg));
        }
-
+       FREE_GMP_TEMP(temp_base);
        ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp);
 }
 /* }}} */
@@ -1096,25 +1077,29 @@
        zval **base_arg, **exp_arg, **mod_arg;
        mpz_t *gmpnum_base, *gmpnum_exp, *gmpnum_mod, *gmpnum_result;
        int use_ui = 0;
+       int temp_base, temp_exp, temp_mod;
 
-       if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &base_arg, 
&exp_arg, &mod_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZZ", &base_arg, 
&exp_arg, &mod_arg) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_base, base_arg);
+       FETCH_GMP_ZVAL(gmpnum_base, base_arg, temp_base);
 
        if (Z_TYPE_PP(exp_arg) == IS_LONG && Z_LVAL_PP(exp_arg) >= 0) {
                use_ui = 1;
        } else {
-               FETCH_GMP_ZVAL(gmpnum_exp, exp_arg);
+               FETCH_GMP_ZVAL(gmpnum_exp, exp_arg, temp_exp);
                if (mpz_sgn(*gmpnum_exp) < 0) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING,"Second 
parameter cannot be less than 0");
                        RETURN_FALSE;
                }
        }
-       FETCH_GMP_ZVAL(gmpnum_mod, mod_arg);
+       FETCH_GMP_ZVAL(gmpnum_mod, mod_arg, temp_mod);
 
        if (!mpz_cmp_ui(*gmpnum_mod, 0)) {
+               FREE_GMP_TEMP(temp_base);
+               FREE_GMP_TEMP(temp_exp);
+               FREE_GMP_TEMP(temp_mod);
                RETURN_FALSE;
        }
 
@@ -1125,6 +1110,10 @@
                mpz_powm(*gmpnum_result, *gmpnum_base, *gmpnum_exp, 
*gmpnum_mod);
        }
 
+       FREE_GMP_TEMP(temp_base);
+       FREE_GMP_TEMP(temp_exp);
+       FREE_GMP_TEMP(temp_mod);
+
        ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp);
 
 }
@@ -1136,20 +1125,23 @@
 {
        zval **a_arg;
        mpz_t *gmpnum_a, *gmpnum_result;
+       int temp_a;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
        
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
 
        if (mpz_sgn(*gmpnum_a) < 0) {
-               php_error_docref(NULL TSRMLS_CC, E_WARNING,"Number has to be 
greater than or equal to 0");
+               php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number has to be 
greater than or equal to 0");
+               FREE_GMP_TEMP(temp_a);
                RETURN_FALSE;
        }       
        
        INIT_GMP_NUM(gmpnum_result);
        mpz_sqrt(*gmpnum_result, *gmpnum_a);
+       FREE_GMP_TEMP(temp_a);
 
        ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp);
 }
@@ -1162,12 +1154,13 @@
        zval **a_arg;
        mpz_t *gmpnum_a, *gmpnum_result1, *gmpnum_result2;
        zval r;
+       int temp_a;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
        
        if (mpz_sgn(*gmpnum_a) < 0) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING,"Number has to be 
greater than or equal to 0");
@@ -1178,6 +1171,7 @@
        INIT_GMP_NUM(gmpnum_result2);
 
        mpz_sqrtrem(*gmpnum_result1, *gmpnum_result2, *gmpnum_a);
+       FREE_GMP_TEMP(temp_a);
 
        array_init(return_value);
        ZEND_REGISTER_RESOURCE(&r, gmpnum_result1, le_gmp);
@@ -1193,14 +1187,16 @@
 {
        zval **a_arg;
        mpz_t *gmpnum_a;
+       int temp_a;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
 
-       RETURN_BOOL((mpz_perfect_square_p(*gmpnum_a)!=0));
+       RETVAL_BOOL((mpz_perfect_square_p(*gmpnum_a)!=0));
+       FREE_GMP_TEMP(temp_a);
 }
 /* }}} */
 
@@ -1208,28 +1204,19 @@
    Checks if a is "probably prime" */
 ZEND_FUNCTION(gmp_prob_prime)
 {
-       zval **gmpnumber_arg, **reps_arg;
+       zval **gmpnumber_arg;
        mpz_t *gmpnum_a;
-       int argc, reps = 10;
+       int reps = 10;
+       int temp_a;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 1 || argc > 2 || zend_get_parameters_ex(argc, 
&gmpnumber_arg, &reps_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z|l", 
&gmpnumber_arg, &reps) == FAILURE) {
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, gmpnumber_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, gmpnumber_arg, temp_a);
 
-       switch (argc) {
-               case 2:
-                       convert_to_long_ex(reps_arg);
-                       reps = Z_LVAL_PP(reps_arg);
-                       break;
-               case 1:
-                       reps = 10;
-                       break;
-       }
-
-       RETURN_LONG(mpz_probab_prime_p(*gmpnum_a, reps));
+       RETVAL_LONG(mpz_probab_prime_p(*gmpnum_a, reps));
+       FREE_GMP_TEMP(temp_a);
 }
 /* }}} */
 
@@ -1239,8 +1226,8 @@
 {
        zval **a_arg, **b_arg;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
 
        gmp_zval_binary_ui_op_ex(return_value, a_arg, b_arg, mpz_gcd, 
(gmp_binary_ui_op_t)mpz_gcd_ui, 1, 0 TSRMLS_CC);
@@ -1254,19 +1241,22 @@
        zval **a_arg, **b_arg;
        mpz_t *gmpnum_a, *gmpnum_b, *gmpnum_t, *gmpnum_s, *gmpnum_g;
        zval r;
+       int temp_a, temp_b;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-       FETCH_GMP_ZVAL(gmpnum_b, b_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
+       FETCH_GMP_ZVAL(gmpnum_b, b_arg, temp_b);
 
        INIT_GMP_NUM(gmpnum_g);
        INIT_GMP_NUM(gmpnum_s);
        INIT_GMP_NUM(gmpnum_t);
 
        mpz_gcdext(*gmpnum_g, *gmpnum_s, *gmpnum_t, *gmpnum_a, *gmpnum_b);
+       FREE_GMP_TEMP(temp_a);
+       FREE_GMP_TEMP(temp_b);
 
        array_init(return_value);
 
@@ -1285,16 +1275,21 @@
 {
        zval **a_arg, **b_arg;
        mpz_t *gmpnum_a, *gmpnum_b, *gmpnum_result;
+       int temp_a, temp_b;
+       int res;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-       FETCH_GMP_ZVAL(gmpnum_b, b_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
+       FETCH_GMP_ZVAL(gmpnum_b, b_arg, temp_b);
 
        INIT_GMP_NUM(gmpnum_result);
-       if (mpz_invert(*gmpnum_result, *gmpnum_a, *gmpnum_b)) {
+       res=mpz_invert(*gmpnum_result, *gmpnum_a, *gmpnum_b);
+       FREE_GMP_TEMP(temp_a);
+       FREE_GMP_TEMP(temp_b);
+       if (res) {
                ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp);
        } else {
                FREE_GMP_NUM(gmpnum_result);
@@ -1326,17 +1321,18 @@
        zval **a_arg, **b_arg;
        mpz_t *gmpnum_a, *gmpnum_b;
        int use_si = 0, res;
+       int temp_a, temp_b;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
 
        if (Z_TYPE_PP(b_arg) == IS_LONG) {
                use_si = 1;
        } else {
-               FETCH_GMP_ZVAL(gmpnum_b, b_arg);
+               FETCH_GMP_ZVAL(gmpnum_b, b_arg, temp_b);
        }
 
        if (use_si) {
@@ -1344,6 +1340,7 @@
        } else {
                res = mpz_cmp(*gmpnum_a, *gmpnum_b);
        }
+       FREE_GMP_TEMP(temp_a);
        
        RETURN_LONG(res);
 }
@@ -1355,14 +1352,16 @@
 {
        zval **a_arg;
        mpz_t *gmpnum_a;
+       int temp_a;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
        
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
 
-       RETURN_LONG(mpz_sgn(*gmpnum_a));
+       RETVAL_LONG(mpz_sgn(*gmpnum_a));
+       FREE_GMP_TEMP(temp_a);
 }
 /* }}} */
 
@@ -1370,19 +1369,11 @@
    Gets random number */
 ZEND_FUNCTION(gmp_random)
 {
-       zval **limiter_arg;
-       int limiter, argc;
+       int limiter = 20;
        mpz_t *gmpnum_result;
 
-       argc = ZEND_NUM_ARGS();
-
-       if (argc == 0) {
-               limiter = 20;
-       } else if (argc == 1 && zend_get_parameters_ex(1, &limiter_arg) == 
SUCCESS) {
-               convert_to_long_ex(limiter_arg);
-               limiter = Z_LVAL_PP(limiter_arg);
-       } else {
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|l", &limiter) == 
FAILURE) {
+               return;
        }
 
        INIT_GMP_NUM(gmpnum_result);
@@ -1441,13 +1432,14 @@
        /* use formula: a^b = (a|b)&^(a&b) */
        zval **a_arg, **b_arg;
        mpz_t *gmpnum_a, *gmpnum_b, *gmpnum_result, *gmpnum_t;
+       int temp_a, temp_b;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-       FETCH_GMP_ZVAL(gmpnum_b, b_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
+       FETCH_GMP_ZVAL(gmpnum_b, b_arg, temp_b);
 
        INIT_GMP_NUM(gmpnum_result);
        INIT_GMP_NUM(gmpnum_t);
@@ -1460,6 +1452,8 @@
 
        FREE_GMP_NUM(gmpnum_t);
 
+       FREE_GMP_TEMP(temp_a);
+       FREE_GMP_TEMP(temp_b);
        ZEND_REGISTER_RESOURCE(return_value, gmpnum_result, le_gmp);
 }
 /* }}} */
@@ -1468,30 +1462,16 @@
    Sets or clear bit in a */
 ZEND_FUNCTION(gmp_setbit)
 {
-       zval **a_arg, **ind_arg, **set_c_arg;
-       int argc, index, set = 1;
+       zval **a_arg;
+       int index, set = 1;
        mpz_t *gmpnum_a;
 
-       argc = ZEND_NUM_ARGS();
-       if (argc < 2 || argc > 3 || zend_get_parameters_ex(argc, &a_arg, 
&ind_arg, &set_c_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zl|b", &a_arg, 
&index, &set) == FAILURE) {
+               return;
        }
 
        ZEND_FETCH_RESOURCE(gmpnum_a, mpz_t *, a_arg, -1, GMP_RESOURCE_NAME, 
le_gmp);
 
-       convert_to_long_ex(ind_arg);
-       index = Z_LVAL_PP(ind_arg);
-
-       switch (argc) {
-               case 3:
-                       convert_to_long_ex(set_c_arg);
-                       set = Z_LVAL_PP(set_c_arg);
-                       break;
-               case 2:
-                       set = 1;
-                       break;
-       }
-
        if (index < 0) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Index must be 
greater than or equal to zero");
                return;
@@ -1509,19 +1489,16 @@
    Clears bit in a */
 ZEND_FUNCTION(gmp_clrbit)
 {
-       zval **a_arg, **ind_arg;
+       zval **a_arg;
        int index;
        mpz_t *gmpnum_a;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &ind_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zl", &a_arg, 
&index) == FAILURE){
+               return;
        }
 
        ZEND_FETCH_RESOURCE(gmpnum_a, mpz_t *, a_arg, -1, GMP_RESOURCE_NAME, 
le_gmp);
 
-       convert_to_long_ex(ind_arg);
-       index = Z_LVAL_PP(ind_arg);
-       
        if (index < 0) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Index must be 
greater than or equal to zero");
                return;
@@ -1537,14 +1514,16 @@
 {
        zval **a_arg;
        mpz_t *gmpnum_a;
+       int temp_a;
 
-       if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &a_arg) == 
FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &a_arg) == 
FAILURE){
+               return;
        }
        
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
 
-       RETURN_LONG(mpz_popcount(*gmpnum_a));
+       RETVAL_LONG(mpz_popcount(*gmpnum_a));
+       FREE_GMP_TEMP(temp_a);
 }
 /* }}} */
 
@@ -1554,15 +1533,18 @@
 {
        zval **a_arg, **b_arg;
        mpz_t *gmpnum_a, *gmpnum_b;
+       int temp_a, temp_b;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ZZ", &a_arg, 
&b_arg) == FAILURE){
+               return;
        }
-       
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-       FETCH_GMP_ZVAL(gmpnum_b, b_arg);
 
-       RETURN_LONG(mpz_hamdist(*gmpnum_a, *gmpnum_b));
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
+       FETCH_GMP_ZVAL(gmpnum_b, b_arg, temp_b);
+
+       RETVAL_LONG(mpz_hamdist(*gmpnum_a, *gmpnum_b));
+       FREE_GMP_TEMP(temp_a);
+       FREE_GMP_TEMP(temp_b);
 }
 /* }}} */
 
@@ -1570,22 +1552,24 @@
    Finds first zero bit */
 ZEND_FUNCTION(gmp_scan0)
 {
-       zval **a_arg, **start_arg;
+       zval **a_arg;
        mpz_t *gmpnum_a;
+       int temp_a;
+       int start;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, 
&start_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zl", &a_arg, 
&start) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-       convert_to_long_ex(start_arg);
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
 
-       if (Z_LVAL_PP(start_arg) < 0) {
+       if (start < 0) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Starting index 
must be greater than or equal to zero");
                RETURN_FALSE;
        }
 
-       RETURN_LONG(mpz_scan0(*gmpnum_a, Z_LVAL_PP(start_arg)));
+       RETVAL_LONG(mpz_scan0(*gmpnum_a, start));
+       FREE_GMP_TEMP(temp_a);
 }
 /* }}} */
 
@@ -1593,22 +1577,23 @@
    Finds first non-zero bit */
 ZEND_FUNCTION(gmp_scan1)
 {
-       zval **a_arg, **start_arg;
+       zval **a_arg;
        mpz_t *gmpnum_a;
+       int temp_a;
+       int start;
 
-       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, 
&start_arg) == FAILURE){
-               WRONG_PARAM_COUNT;
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Zl", &a_arg, 
&start) == FAILURE){
+               return;
        }
 
-       FETCH_GMP_ZVAL(gmpnum_a, a_arg);
-       convert_to_long_ex(start_arg);
-       
-       if (Z_LVAL_PP(start_arg) < 0) {
+       FETCH_GMP_ZVAL(gmpnum_a, a_arg, temp_a);
+       if (start < 0) {
                php_error_docref(NULL TSRMLS_CC, E_WARNING, "Starting index 
must be greater than or equal to zero");
                RETURN_FALSE;
        }
 
-       RETURN_LONG(mpz_scan1(*gmpnum_a, Z_LVAL_PP(start_arg)));
+       RETVAL_LONG(mpz_scan1(*gmpnum_a, start));
+       FREE_GMP_TEMP(temp_a);
 }
 /* }}} */
 
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/004.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/gmp/tests/004.phpt
diff -u php-src/ext/gmp/tests/004.phpt:1.1.2.2 
php-src/ext/gmp/tests/004.phpt:1.1.2.2.2.1
--- php-src/ext/gmp/tests/004.phpt:1.1.2.2      Sun Sep 10 22:11:29 2006
+++ php-src/ext/gmp/tests/004.phpt      Thu Nov  1 00:46:12 2007
@@ -25,7 +25,7 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_intval() in %s on line %d
+Warning: gmp_intval() expects exactly 1 parameter, 2 given in %s on line %d
 NULL
 int(0)
 int(1)
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/005.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/gmp/tests/005.phpt
diff -u php-src/ext/gmp/tests/005.phpt:1.1.2.2 
php-src/ext/gmp/tests/005.phpt:1.1.2.2.2.1
--- php-src/ext/gmp/tests/005.phpt:1.1.2.2      Sun Sep 10 22:11:29 2006
+++ php-src/ext/gmp/tests/005.phpt      Thu Nov  1 00:46:12 2007
@@ -28,19 +28,25 @@
 
 var_dump(gmp_strval(array(1,2), array(1,2)));
 var_dump(gmp_strval(new stdclass, new stdclass));
+var_dump(gmp_strval(array(1,2)));
+var_dump(gmp_strval(new stdclass));
 
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_strval() in %s on line %d
+Warning: gmp_strval() expects at least 1 parameter, 0 given in %s on line %d
 NULL
 bool(false)
-bool(false)
-bool(false)
 
-Warning: gmp_strval(): Bad base for conversion: 0 in %s on line %d
+Warning: gmp_strval() expects parameter 2 to be long, string given in %s on 
line %d
+NULL
+
+Warning: gmp_strval(): Bad base for conversion: -1 in %s on line %d
 bool(false)
 
+Warning: gmp_strval() expects parameter 2 to be long, string given in %s on 
line %d
+NULL
+
 Warning: gmp_strval(): supplied resource is not a valid GMP integer resource 
in %s on line %d
 bool(false)
 string(7) "9765456"
@@ -60,6 +66,12 @@
 bool(false)
 string(8) "-3373333"
 
+Warning: gmp_strval() expects parameter 2 to be long, array given in %s on 
line %d
+NULL
+
+Warning: gmp_strval() expects parameter 2 to be long, object given in %s on 
line %d
+NULL
+
 Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/006.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/gmp/tests/006.phpt
diff -u php-src/ext/gmp/tests/006.phpt:1.1.2.2 
php-src/ext/gmp/tests/006.phpt:1.1.2.2.2.1
--- php-src/ext/gmp/tests/006.phpt:1.1.2.2      Sun Sep 10 22:11:29 2006
+++ php-src/ext/gmp/tests/006.phpt      Thu Nov  1 00:46:12 2007
@@ -23,21 +23,21 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_sub() in %s on line %d
+Warning: gmp_sub() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_sub() in %s on line %d
+Warning: gmp_sub() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 bool(false)
 
-Warning: Wrong parameter count for gmp_sub() in %s on line %d
+Warning: gmp_sub() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
 Warning: gmp_sub(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
-resource(%d) of type (GMP integer)
+resource(5) of type (GMP integer)
 string(2) "-1"
-resource(%d) of type (GMP integer)
+resource(8) of type (GMP integer)
 string(5) "10001"
 
 Warning: gmp_sub(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/007.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/gmp/tests/007.phpt
diff -u php-src/ext/gmp/tests/007.phpt:1.1.2.2 
php-src/ext/gmp/tests/007.phpt:1.1.2.2.2.1
--- php-src/ext/gmp/tests/007.phpt:1.1.2.2      Sun Sep 10 22:11:29 2006
+++ php-src/ext/gmp/tests/007.phpt      Thu Nov  1 00:46:12 2007
@@ -45,10 +45,10 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_div_qr() in %s on line %d
+Warning: gmp_div_qr() expects at least 2 parameters, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_div_qr() in %s on line %d
+Warning: gmp_div_qr() expects at least 2 parameters, 1 given in %s on line %d
 NULL
 array(2) {
   [0]=>
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/008.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/gmp/tests/008.phpt
diff -u php-src/ext/gmp/tests/008.phpt:1.1.2.2 
php-src/ext/gmp/tests/008.phpt:1.1.2.2.2.1
--- php-src/ext/gmp/tests/008.phpt:1.1.2.2      Sun Sep 10 22:11:29 2006
+++ php-src/ext/gmp/tests/008.phpt      Thu Nov  1 00:46:12 2007
@@ -36,10 +36,10 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_div_r() in %s on line %d
+Warning: gmp_div_r() expects at least 2 parameters, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_div_r() in %s on line %d
+Warning: gmp_div_r() expects at least 2 parameters, 1 given in %s on line %d
 NULL
 int(0)
 string(1) "0"
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/009.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/gmp/tests/009.phpt
diff -u php-src/ext/gmp/tests/009.phpt:1.1.2.2 
php-src/ext/gmp/tests/009.phpt:1.1.2.2.2.1
--- php-src/ext/gmp/tests/009.phpt:1.1.2.2      Sun Sep 10 22:11:29 2006
+++ php-src/ext/gmp/tests/009.phpt      Thu Nov  1 00:46:12 2007
@@ -36,10 +36,10 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_div_q() in %s on line %d
+Warning: gmp_div_q() expects at least 2 parameters, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_div_q() in %s on line %d
+Warning: gmp_div_q() expects at least 2 parameters, 1 given in %s on line %d
 NULL
 resource(%d) of type (GMP integer)
 string(1) "0"
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/010.phpt?r1=1.1.2.2&r2=1.1.2.2.2.1&diff_format=u
Index: php-src/ext/gmp/tests/010.phpt
diff -u php-src/ext/gmp/tests/010.phpt:1.1.2.2 
php-src/ext/gmp/tests/010.phpt:1.1.2.2.2.1
--- php-src/ext/gmp/tests/010.phpt:1.1.2.2      Sun Sep 10 22:11:29 2006
+++ php-src/ext/gmp/tests/010.phpt      Thu Nov  1 00:46:12 2007
@@ -22,10 +22,10 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_mod() in %s on line %d
+Warning: gmp_mod() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_mod() in %s on line %d
+Warning: gmp_mod() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 bool(false)
 int(0)
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/011.phpt?r1=1.1.2.5&r2=1.1.2.5.2.1&diff_format=u
Index: php-src/ext/gmp/tests/011.phpt
diff -u php-src/ext/gmp/tests/011.phpt:1.1.2.5 
php-src/ext/gmp/tests/011.phpt:1.1.2.5.2.1
--- php-src/ext/gmp/tests/011.phpt:1.1.2.5      Sun May 27 15:12:32 2007
+++ php-src/ext/gmp/tests/011.phpt      Thu Nov  1 00:46:12 2007
@@ -39,10 +39,10 @@
 echo "Done\n";
 ?>
 --EXPECTF--    
-Warning: Wrong parameter count for gmp_divexact() in %s on line %d
+Warning: gmp_divexact() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_divexact() in %s on line %d
+Warning: gmp_divexact() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 string(1) "0"
 
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/012.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/012.phpt
diff -u php-src/ext/gmp/tests/012.phpt:1.1.2.3 
php-src/ext/gmp/tests/012.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/012.phpt:1.1.2.3      Sun May 27 15:12:32 2007
+++ php-src/ext/gmp/tests/012.phpt      Thu Nov  1 00:46:12 2007
@@ -33,10 +33,10 @@
 int(0)
 string(21) "-12345678901234567890"
 
-Warning: Wrong parameter count for gmp_neg() in %s on line %d
+Warning: gmp_neg() expects exactly 1 parameter, 2 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_neg() in %s on line %d
+Warning: gmp_neg() expects exactly 1 parameter, 0 given in %s on line %d
 NULL
 
 Warning: gmp_neg(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/013.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/013.phpt
diff -u php-src/ext/gmp/tests/013.phpt:1.1.2.3 
php-src/ext/gmp/tests/013.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/013.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/013.phpt      Thu Nov  1 00:46:12 2007
@@ -34,10 +34,10 @@
 string(1) "0"
 string(1) "0"
 
-Warning: Wrong parameter count for gmp_abs() in %s on line %d
+Warning: gmp_abs() expects exactly 1 parameter, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_abs() in %s on line %d
+Warning: gmp_abs() expects exactly 1 parameter, 2 given in %s on line %d
 NULL
 
 Warning: gmp_abs(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/014.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/014.phpt
diff -u php-src/ext/gmp/tests/014.phpt:1.1.2.3 
php-src/ext/gmp/tests/014.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/014.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/014.phpt      Thu Nov  1 00:46:12 2007
@@ -48,10 +48,10 @@
 Warning: gmp_fact(): Number has to be greater than or equal to 0 in %s on line 
%d
 string(1) "0"
 
-Warning: Wrong parameter count for gmp_fact() in %s on line %d
+Warning: gmp_fact() expects exactly 1 parameter, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_fact() in %s on line %d
+Warning: gmp_fact() expects exactly 1 parameter, 2 given in %s on line %d
 NULL
 resource(%d) of type (GMP integer)
 string(1) "1"
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/015.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/015.phpt
diff -u php-src/ext/gmp/tests/015.phpt:1.1.2.3 
php-src/ext/gmp/tests/015.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/015.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/015.phpt      Thu Nov  1 00:46:12 2007
@@ -48,13 +48,13 @@
 string(14) "10240000000000"
 string(14) "10240000000000"
 
-Warning: Wrong parameter count for gmp_pow() in %s on line %d
+Warning: gmp_pow() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_pow() in %s on line %d
+Warning: gmp_pow() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_pow() in %s on line %d
+Warning: gmp_pow() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 
 Warning: gmp_pow(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/016.phpt?r1=1.1.2.4&r2=1.1.2.4.2.1&diff_format=u
Index: php-src/ext/gmp/tests/016.phpt
diff -u php-src/ext/gmp/tests/016.phpt:1.1.2.4 
php-src/ext/gmp/tests/016.phpt:1.1.2.4.2.1
--- php-src/ext/gmp/tests/016.phpt:1.1.2.4      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/016.phpt      Thu Nov  1 00:46:12 2007
@@ -58,13 +58,13 @@
 Warning: gmp_powm(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_powm() in %s on line %d
+Warning: gmp_powm() expects exactly 3 parameters, 2 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_powm() in %s on line %d
+Warning: gmp_powm() expects exactly 3 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_powm() in %s on line %d
+Warning: gmp_powm() expects exactly 3 parameters, 0 given in %s on line %d
 NULL
 
 Warning: gmp_powm(): Second parameter cannot be less than 0 in %s on line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/017.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/017.phpt
diff -u php-src/ext/gmp/tests/017.phpt:1.1.2.3 
php-src/ext/gmp/tests/017.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/017.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/017.phpt      Thu Nov  1 00:46:12 2007
@@ -39,10 +39,10 @@
 string(1) "0"
 string(2) "27"
 
-Warning: Wrong parameter count for gmp_sqrt() in %s on line %d
+Warning: gmp_sqrt() expects exactly 1 parameter, 2 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_sqrt() in %s on line %d
+Warning: gmp_sqrt() expects exactly 1 parameter, 0 given in %s on line %d
 NULL
 
 Warning: gmp_sqrt(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/018.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/018.phpt
diff -u php-src/ext/gmp/tests/018.phpt:1.1.2.3 
php-src/ext/gmp/tests/018.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/018.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/018.phpt      Thu Nov  1 00:46:12 2007
@@ -95,6 +95,6 @@
 Warning: gmp_sqrtrem(): Unable to convert variable to GMP - wrong type in %s 
on line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_sqrtrem() in %s on line %d
+Warning: gmp_sqrtrem() expects exactly 1 parameter, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/019.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/019.phpt
diff -u php-src/ext/gmp/tests/019.phpt:1.1.2.3 
php-src/ext/gmp/tests/019.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/019.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/019.phpt      Thu Nov  1 00:46:12 2007
@@ -39,7 +39,7 @@
 bool(true)
 bool(false)
 
-Warning: Wrong parameter count for gmp_perfect_square() in %s on line %d
+Warning: gmp_perfect_square() expects exactly 1 parameter, 0 given in %s on 
line %d
 NULL
 
 Warning: gmp_perfect_square(): Unable to convert variable to GMP - wrong type 
in %s on line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/020.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/020.phpt
diff -u php-src/ext/gmp/tests/020.phpt:1.1.2.3 
php-src/ext/gmp/tests/020.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/020.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/020.phpt      Thu Nov  1 00:46:12 2007
@@ -73,7 +73,7 @@
 int(0)
 int(0)
 
-Warning: Wrong parameter count for gmp_prob_prime() in %s on line %d
+Warning: gmp_prob_prime() expects at least 1 parameter, 0 given in %s on line 
%d
 NULL
 
 Warning: gmp_prob_prime(): Unable to convert variable to GMP - wrong type in 
%s on line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/021.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/021.phpt
diff -u php-src/ext/gmp/tests/021.phpt:1.1.2.3 
php-src/ext/gmp/tests/021.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/021.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/021.phpt      Thu Nov  1 00:46:12 2007
@@ -40,12 +40,12 @@
 string(10) "8127346234"
 string(1) "0"
 
-Warning: Wrong parameter count for gmp_gcd() in %s on line %d
+Warning: gmp_gcd() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_gcd() in %s on line %d
+Warning: gmp_gcd() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_gcd() in %s on line %d
+Warning: gmp_gcd() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/022.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/022.phpt
diff -u php-src/ext/gmp/tests/022.phpt:1.1.2.3 
php-src/ext/gmp/tests/022.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/022.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/022.phpt      Thu Nov  1 00:46:12 2007
@@ -74,12 +74,12 @@
 Warning: gmp_gcdext(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_gcdext() in %s on line %d
+Warning: gmp_gcdext() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_gcdext() in %s on line %d
+Warning: gmp_gcdext() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_gcdext() in %s on line %d
+Warning: gmp_gcdext() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/023.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/023.phpt
diff -u php-src/ext/gmp/tests/023.phpt:1.1.2.3 
php-src/ext/gmp/tests/023.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/023.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/023.phpt      Thu Nov  1 00:46:12 2007
@@ -38,10 +38,10 @@
 string(22) "3498273496234234523441"
 string(1) "1"
 
-Warning: Wrong parameter count for gmp_invert() in %s on line %d
+Warning: gmp_invert() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_invert() in %s on line %d
+Warning: gmp_invert() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
 Warning: gmp_invert(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/024.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/024.phpt
diff -u php-src/ext/gmp/tests/024.phpt:1.1.2.3 
php-src/ext/gmp/tests/024.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/024.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/024.phpt      Thu Nov  1 00:46:12 2007
@@ -35,20 +35,19 @@
 string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
+string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
 string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-int(0)
+string(2) "-1"
 
 Warning: gmp_jacobi(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
@@ -56,12 +55,12 @@
 Warning: gmp_jacobi(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_jacobi() in %s on line %d
+Warning: gmp_jacobi() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_jacobi() in %s on line %d
+Warning: gmp_jacobi() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_jacobi() in %s on line %d
+Warning: gmp_jacobi() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/025.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/025.phpt
diff -u php-src/ext/gmp/tests/025.phpt:1.1.2.3 
php-src/ext/gmp/tests/025.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/025.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/025.phpt      Thu Nov  1 00:46:12 2007
@@ -35,20 +35,19 @@
 string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
+string(2) "-1"
 string(1) "0"
 string(1) "0"
+string(2) "-1"
 string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-string(1) "0"
-int(0)
+string(2) "-1"
 
 Warning: gmp_legendre(): Unable to convert variable to GMP - wrong type in %s 
on line %d
 bool(false)
@@ -56,12 +55,12 @@
 Warning: gmp_legendre(): Unable to convert variable to GMP - wrong type in %s 
on line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_legendre() in %s on line %d
+Warning: gmp_legendre() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_legendre() in %s on line %d
+Warning: gmp_legendre() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_legendre() in %s on line %d
+Warning: gmp_legendre() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/026.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/026.phpt
diff -u php-src/ext/gmp/tests/026.phpt:1.1.2.3 
php-src/ext/gmp/tests/026.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/026.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/026.phpt      Thu Nov  1 00:46:12 2007
@@ -34,15 +34,15 @@
 int(-2)
 int(0)
 
-Warning: Wrong parameter count for gmp_cmp() in %s on line %d
+Warning: gmp_cmp() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
 Warning: gmp_cmp(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_cmp() in %s on line %d
+Warning: gmp_cmp() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_cmp() in %s on line %d
+Warning: gmp_cmp() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/027.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/027.phpt
diff -u php-src/ext/gmp/tests/027.phpt:1.1.2.3 
php-src/ext/gmp/tests/027.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/027.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/027.phpt      Thu Nov  1 00:46:12 2007
@@ -28,12 +28,12 @@
 bool(false)
 int(0)
 
-Warning: Wrong parameter count for gmp_sign() in %s on line %d
+Warning: gmp_sign() expects exactly 1 parameter, 2 given in %s on line %d
 NULL
 
 Warning: gmp_sign(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_sign() in %s on line %d
+Warning: gmp_sign() expects exactly 1 parameter, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/028.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/028.phpt
diff -u php-src/ext/gmp/tests/028.phpt:1.1.2.3 
php-src/ext/gmp/tests/028.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/028.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/028.phpt      Thu Nov  1 00:46:12 2007
@@ -26,10 +26,16 @@
 string(%d) "%d"
 string(%d) "%d"
 string(%d) "%d"
-resource(%d) of type (GMP integer)
 
-Warning: Wrong parameter count for gmp_random() in %s on line %d
+Warning: gmp_random() expects parameter 1 to be long, array given in %s on 
line %d
+NULL
+
+Warning: gmp_random() expects at most 1 parameter, 2 given in %s on line %d
+NULL
+
+Warning: gmp_random() expects parameter 1 to be long, string given in %s on 
line %d
+NULL
+
+Warning: gmp_random() expects parameter 1 to be long, string given in %s on 
line %d
 NULL
-resource(%d) of type (GMP integer)
-resource(%d) of type (GMP integer)
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/029.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/029.phpt
diff -u php-src/ext/gmp/tests/029.phpt:1.1.2.3 
php-src/ext/gmp/tests/029.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/029.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/029.phpt      Thu Nov  1 00:46:12 2007
@@ -35,10 +35,10 @@
 string(4) "1536"
 string(15) "424703623692768"
 
-Warning: Wrong parameter count for gmp_and() in %s on line %d
+Warning: gmp_and() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_and() in %s on line %d
+Warning: gmp_and() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
 Warning: gmp_and(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/030.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/030.phpt
diff -u php-src/ext/gmp/tests/030.phpt:1.1.2.3 
php-src/ext/gmp/tests/030.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/030.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/030.phpt      Thu Nov  1 00:46:13 2007
@@ -35,10 +35,10 @@
 string(15) "987657876576252"
 string(21) "987658441719689394144"
 
-Warning: Wrong parameter count for gmp_or() in %s on line %d
+Warning: gmp_or() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_or() in %s on line %d
+Warning: gmp_or() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
 Warning: gmp_or(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/031.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/031.phpt
diff -u php-src/ext/gmp/tests/031.phpt:1.1.2.3 
php-src/ext/gmp/tests/031.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/031.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/031.phpt      Thu Nov  1 00:46:13 2007
@@ -37,7 +37,7 @@
 Warning: gmp_com(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 string(1) "0"
 
-Warning: Wrong parameter count for gmp_com() in %s on line %d
+Warning: gmp_com() expects exactly 1 parameter, 0 given in %s on line %d
 
 Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/032.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/032.phpt
diff -u php-src/ext/gmp/tests/032.phpt:1.1.2.3 
php-src/ext/gmp/tests/032.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/032.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/032.phpt      Thu Nov  1 00:46:13 2007
@@ -35,10 +35,10 @@
 string(15) "987657876574716"
 string(21) "987658017016065701376"
 
-Warning: Wrong parameter count for gmp_xor() in %s on line %d
+Warning: gmp_xor() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_xor() in %s on line %d
+Warning: gmp_xor() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
 Warning: gmp_xor(): Unable to convert variable to GMP - wrong type in %s on 
line %d
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/033.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/033.phpt
diff -u php-src/ext/gmp/tests/033.phpt:1.1.2.3 
php-src/ext/gmp/tests/033.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/033.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/033.phpt      Thu Nov  1 00:46:13 2007
@@ -54,11 +54,11 @@
 
 Warning: gmp_setbit(): supplied argument is not a valid GMP integer resource 
in %s on line %d
 
-Warning: Wrong parameter count for gmp_setbit() in %s on line %d
+Warning: gmp_setbit() expects at least 2 parameters, 1 given in %s on line %d
 
-Warning: Wrong parameter count for gmp_setbit() in %s on line %d
+Warning: gmp_setbit() expects at most 3 parameters, 4 given in %s on line %d
 
-Warning: gmp_setbit(): supplied argument is not a valid GMP integer resource 
in %s on line %d
+Warning: gmp_setbit() expects parameter 2 to be long, array given in %s on 
line %d
 
-Warning: gmp_setbit(): supplied argument is not a valid GMP integer resource 
in %s on line %d
+Warning: gmp_setbit() expects parameter 2 to be long, array given in %s on 
line %d
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/034.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/034.phpt
diff -u php-src/ext/gmp/tests/034.phpt:1.1.2.3 
php-src/ext/gmp/tests/034.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/034.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/034.phpt      Thu Nov  1 00:46:13 2007
@@ -48,9 +48,9 @@
 
 Warning: gmp_clrbit(): supplied argument is not a valid GMP integer resource 
in %s on line %d
 
-Warning: Wrong parameter count for gmp_clrbit() in %s on line %d
+Warning: gmp_clrbit() expects exactly 2 parameters, 3 given in %s on line %d
 
-Warning: Wrong parameter count for gmp_clrbit() in %s on line %d
+Warning: gmp_clrbit() expects exactly 2 parameters, 1 given in %s on line %d
 
-Warning: Wrong parameter count for gmp_clrbit() in %s on line %d
+Warning: gmp_clrbit() expects exactly 2 parameters, 0 given in %s on line %d
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/035.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/035.phpt
diff -u php-src/ext/gmp/tests/035.phpt:1.1.2.3 
php-src/ext/gmp/tests/035.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/035.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/035.phpt      Thu Nov  1 00:46:13 2007
@@ -28,6 +28,6 @@
 Warning: gmp_popcount(): Unable to convert variable to GMP - wrong type in %s 
on line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_popcount() in %s on line %d
+Warning: gmp_popcount() expects exactly 1 parameter, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/036.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/036.phpt
diff -u php-src/ext/gmp/tests/036.phpt:1.1.2.3 
php-src/ext/gmp/tests/036.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/036.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/036.phpt      Thu Nov  1 00:46:13 2007
@@ -33,7 +33,7 @@
 int(0)
 int(26)
 
-Warning: Wrong parameter count for gmp_hamdist() in %s on line %d
+Warning: gmp_hamdist() expects exactly 2 parameters, 3 given in %s on line %d
 NULL
 
 Warning: gmp_hamdist(): Unable to convert variable to GMP - wrong type in %s 
on line %d
@@ -45,6 +45,6 @@
 Warning: gmp_hamdist(): Unable to convert variable to GMP - wrong type in %s 
on line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_hamdist() in %s on line %d
+Warning: gmp_hamdist() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/037.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/037.phpt
diff -u php-src/ext/gmp/tests/037.phpt:1.1.2.3 
php-src/ext/gmp/tests/037.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/037.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/037.phpt      Thu Nov  1 00:46:13 2007
@@ -32,9 +32,9 @@
 Warning: gmp_scan0(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_scan0() in %s on line %d
+Warning: gmp_scan0() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_scan0() in %s on line %d
+Warning: gmp_scan0() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/038.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/038.phpt
diff -u php-src/ext/gmp/tests/038.phpt:1.1.2.3 
php-src/ext/gmp/tests/038.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/038.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/038.phpt      Thu Nov  1 00:46:13 2007
@@ -32,9 +32,9 @@
 Warning: gmp_scan1(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_scan1() in %s on line %d
+Warning: gmp_scan1() expects exactly 2 parameters, 1 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_scan1() in %s on line %d
+Warning: gmp_scan1() expects exactly 2 parameters, 0 given in %s on line %d
 NULL
 Done
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/039.phpt?r1=1.1.2.3&r2=1.1.2.3.2.1&diff_format=u
Index: php-src/ext/gmp/tests/039.phpt
diff -u php-src/ext/gmp/tests/039.phpt:1.1.2.3 
php-src/ext/gmp/tests/039.phpt:1.1.2.3.2.1
--- php-src/ext/gmp/tests/039.phpt:1.1.2.3      Sun May 27 15:12:33 2007
+++ php-src/ext/gmp/tests/039.phpt      Thu Nov  1 00:46:13 2007
@@ -21,15 +21,15 @@
 resource(%d) of type (GMP integer)
 string(8) "98765678"
 
-Warning: Wrong parameter count for gmp_init() in %s on line %d
+Warning: gmp_init() expects at least 1 parameter, 0 given in %s on line %d
 
 Warning: gmp_strval(): Unable to convert variable to GMP - wrong type in %s on 
line %d
 bool(false)
 
-Warning: Wrong parameter count for gmp_init() in %s on line %d
+Warning: gmp_init() expects at least 1 parameter, 0 given in %s on line %d
 NULL
 
-Warning: Wrong parameter count for gmp_init() in %s on line %d
+Warning: gmp_init() expects at most 2 parameters, 4 given in %s on line %d
 NULL
 
 Warning: gmp_init(): Bad base for conversion: -1 (should be between 2 and 36) 
in %s on line %d

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to