From f54f308f71edb6c0db679e1d6755af5e9cac2d56 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Fri, 29 Nov 2013 00:00:41 +0100 Subject: [PATCH] Clean up GMP arginfos Removed duplicate arginfos, specified number of required args everywhere and removed weird pass-by-ref arguments. --- ext/gmp/gmp.c | 243 ++++++++++++-------------------------------------- 1 file changed, 55 insertions(+), 188 deletions(-) diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c index e64acf92ad..f243b3155c 100644 --- a/ext/gmp/gmp.c +++ b/ext/gmp/gmp.c @@ -43,7 +43,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_init, 0, 0, 1) ZEND_ARG_INFO(0, base) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_intval, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_intval, 0, 0, 1) ZEND_ARG_INFO(0, gmpnumber) ZEND_END_ARG_INFO() @@ -52,195 +52,62 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_strval, 0, 0, 1) ZEND_ARG_INFO(0, base) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_add, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_unary, 0, 0, 1) ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_sub, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_mul, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div_qr, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_binary, 0, 0, 2) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, b) - ZEND_ARG_INFO(0, round) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div_r, 0, 0, 2) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div, 0, 0, 2) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, b) ZEND_ARG_INFO(0, round) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div_q, 0, 0, 2) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) - ZEND_ARG_INFO(0, round) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_mod, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_divexact, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_neg, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_abs, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_fact, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_pow, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_pow, 0, 0, 2) ZEND_ARG_INFO(0, base) ZEND_ARG_INFO(0, exp) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_powm, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_powm, 0, 0, 3) ZEND_ARG_INFO(0, base) ZEND_ARG_INFO(0, exp) ZEND_ARG_INFO(0, mod) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_sqrt, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_sqrtrem, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_root, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, nth) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_rootrem, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_root, 0, 0, 2) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, nth) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_perfect_square, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_prob_prime, 0, 0, 1) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, reps) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_gcd, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_gcdext, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_invert, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_jacobi, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_legendre, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_cmp, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_sign, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_random, 0, 0, 0) ZEND_ARG_INFO(0, limiter) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_and, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_or, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_com, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_xor, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_setbit, 0, 0, 2) - ZEND_ARG_INFO(1, a) + ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, index) ZEND_ARG_INFO(0, set_clear) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_clrbit, 0) - ZEND_ARG_INFO(1, a) - ZEND_ARG_INFO(0, index) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_testbit, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_bit, 0, 0, 2) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, index) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_popcount, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_hamdist, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, b) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_scan0, 0) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_scan, 0, 0, 2) ZEND_ARG_INFO(0, a) ZEND_ARG_INFO(0, start) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_gmp_scan1, 0) - ZEND_ARG_INFO(0, a) - ZEND_ARG_INFO(0, start) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_gmp_nextprime, 0) - ZEND_ARG_INFO(0, a) -ZEND_END_ARG_INFO() - /* }}} */ ZEND_DECLARE_MODULE_GLOBALS(gmp) @@ -249,49 +116,49 @@ static ZEND_GINIT_FUNCTION(gmp); /* {{{ gmp_functions[] */ const zend_function_entry gmp_functions[] = { - ZEND_FE(gmp_init, arginfo_gmp_init) - ZEND_FE(gmp_intval, arginfo_gmp_intval) - ZEND_FE(gmp_strval, arginfo_gmp_strval) - ZEND_FE(gmp_add, arginfo_gmp_add) - ZEND_FE(gmp_sub, arginfo_gmp_sub) - ZEND_FE(gmp_mul, arginfo_gmp_mul) - ZEND_FE(gmp_div_qr, arginfo_gmp_div_qr) - ZEND_FE(gmp_div_q, arginfo_gmp_div_q) - ZEND_FE(gmp_div_r, arginfo_gmp_div_r) - ZEND_FALIAS(gmp_div, gmp_div_q, arginfo_gmp_div_q) - ZEND_FE(gmp_mod, arginfo_gmp_mod) - ZEND_FE(gmp_divexact, arginfo_gmp_divexact) - ZEND_FE(gmp_neg, arginfo_gmp_neg) - ZEND_FE(gmp_abs, arginfo_gmp_abs) - ZEND_FE(gmp_fact, arginfo_gmp_fact) - ZEND_FE(gmp_sqrt, arginfo_gmp_sqrt) - ZEND_FE(gmp_sqrtrem, arginfo_gmp_sqrtrem) - ZEND_FE(gmp_root, arginfo_gmp_root) - ZEND_FE(gmp_rootrem, arginfo_gmp_rootrem) - ZEND_FE(gmp_pow, arginfo_gmp_pow) - ZEND_FE(gmp_powm, arginfo_gmp_powm) - ZEND_FE(gmp_perfect_square, arginfo_gmp_perfect_square) - ZEND_FE(gmp_prob_prime, arginfo_gmp_prob_prime) - ZEND_FE(gmp_gcd, arginfo_gmp_gcd) - ZEND_FE(gmp_gcdext, arginfo_gmp_gcdext) - ZEND_FE(gmp_invert, arginfo_gmp_invert) - ZEND_FE(gmp_jacobi, arginfo_gmp_jacobi) - ZEND_FE(gmp_legendre, arginfo_gmp_legendre) - ZEND_FE(gmp_cmp, arginfo_gmp_cmp) - ZEND_FE(gmp_sign, arginfo_gmp_sign) - ZEND_FE(gmp_random, arginfo_gmp_random) - ZEND_FE(gmp_and, arginfo_gmp_and) - ZEND_FE(gmp_or, arginfo_gmp_or) - ZEND_FE(gmp_com, arginfo_gmp_com) - ZEND_FE(gmp_xor, arginfo_gmp_xor) - ZEND_FE(gmp_setbit, arginfo_gmp_setbit) - ZEND_FE(gmp_clrbit, arginfo_gmp_clrbit) - ZEND_FE(gmp_scan0, arginfo_gmp_scan0) - ZEND_FE(gmp_scan1, arginfo_gmp_scan1) - ZEND_FE(gmp_testbit,arginfo_gmp_testbit) - ZEND_FE(gmp_popcount, arginfo_gmp_popcount) - ZEND_FE(gmp_hamdist, arginfo_gmp_hamdist) - ZEND_FE(gmp_nextprime, arginfo_gmp_nextprime) + ZEND_FE(gmp_init, arginfo_gmp_init) + ZEND_FE(gmp_intval, arginfo_gmp_intval) + ZEND_FE(gmp_strval, arginfo_gmp_strval) + ZEND_FE(gmp_add, arginfo_gmp_binary) + ZEND_FE(gmp_sub, arginfo_gmp_binary) + ZEND_FE(gmp_mul, arginfo_gmp_binary) + ZEND_FE(gmp_div_qr, arginfo_gmp_div) + ZEND_FE(gmp_div_q, arginfo_gmp_div) + ZEND_FE(gmp_div_r, arginfo_gmp_div) + ZEND_FALIAS(gmp_div, gmp_div_q, arginfo_gmp_div) + ZEND_FE(gmp_mod, arginfo_gmp_binary) + ZEND_FE(gmp_divexact, arginfo_gmp_binary) + ZEND_FE(gmp_neg, arginfo_gmp_unary) + ZEND_FE(gmp_abs, arginfo_gmp_unary) + ZEND_FE(gmp_fact, arginfo_gmp_unary) + ZEND_FE(gmp_sqrt, arginfo_gmp_unary) + ZEND_FE(gmp_sqrtrem, arginfo_gmp_unary) + ZEND_FE(gmp_root, arginfo_gmp_root) + ZEND_FE(gmp_rootrem, arginfo_gmp_root) + ZEND_FE(gmp_pow, arginfo_gmp_pow) + ZEND_FE(gmp_powm, arginfo_gmp_powm) + ZEND_FE(gmp_perfect_square, arginfo_gmp_unary) + ZEND_FE(gmp_prob_prime, arginfo_gmp_prob_prime) + ZEND_FE(gmp_gcd, arginfo_gmp_binary) + ZEND_FE(gmp_gcdext, arginfo_gmp_binary) + ZEND_FE(gmp_invert, arginfo_gmp_binary) + ZEND_FE(gmp_jacobi, arginfo_gmp_binary) + ZEND_FE(gmp_legendre, arginfo_gmp_binary) + ZEND_FE(gmp_cmp, arginfo_gmp_binary) + ZEND_FE(gmp_sign, arginfo_gmp_unary) + ZEND_FE(gmp_random, arginfo_gmp_random) + ZEND_FE(gmp_and, arginfo_gmp_binary) + ZEND_FE(gmp_or, arginfo_gmp_binary) + ZEND_FE(gmp_com, arginfo_gmp_unary) + ZEND_FE(gmp_xor, arginfo_gmp_binary) + ZEND_FE(gmp_setbit, arginfo_gmp_setbit) + ZEND_FE(gmp_clrbit, arginfo_gmp_bit) + ZEND_FE(gmp_testbit, arginfo_gmp_bit) + ZEND_FE(gmp_scan0, arginfo_gmp_scan) + ZEND_FE(gmp_scan1, arginfo_gmp_scan) + ZEND_FE(gmp_popcount, arginfo_gmp_unary) + ZEND_FE(gmp_hamdist, arginfo_gmp_binary) + ZEND_FE(gmp_nextprime, arginfo_gmp_unary) PHP_FE_END }; /* }}} */ @@ -1813,7 +1680,7 @@ ZEND_FUNCTION(gmp_xor) } /* }}} */ -/* {{{ proto void gmp_setbit(GMP &a, int index[, bool set_clear]) +/* {{{ proto void gmp_setbit(GMP a, int index[, bool set_clear]) Sets or clear bit in a */ ZEND_FUNCTION(gmp_setbit) { @@ -1841,7 +1708,7 @@ ZEND_FUNCTION(gmp_setbit) } /* }}} */ -/* {{{ proto void gmp_clrbit(GMP &a, int index) +/* {{{ proto void gmp_clrbit(GMP a, int index) Clears bit in a */ ZEND_FUNCTION(gmp_clrbit) { -- 2.40.0