Skip to content

Commit f54f308

Browse files
committed
Clean up GMP arginfos
Removed duplicate arginfos, specified number of required args everywhere and removed weird pass-by-ref arguments.
1 parent 6d38090 commit f54f308

File tree

1 file changed

+55
-188
lines changed

1 file changed

+55
-188
lines changed

ext/gmp/gmp.c

Lines changed: 55 additions & 188 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_init, 0, 0, 1)
4343
ZEND_ARG_INFO(0, base)
4444
ZEND_END_ARG_INFO()
4545

46-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_intval, 0)
46+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_intval, 0, 0, 1)
4747
ZEND_ARG_INFO(0, gmpnumber)
4848
ZEND_END_ARG_INFO()
4949

@@ -52,195 +52,62 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_strval, 0, 0, 1)
5252
ZEND_ARG_INFO(0, base)
5353
ZEND_END_ARG_INFO()
5454

55-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_add, 0)
55+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_unary, 0, 0, 1)
5656
ZEND_ARG_INFO(0, a)
57-
ZEND_ARG_INFO(0, b)
58-
ZEND_END_ARG_INFO()
59-
60-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_sub, 0)
61-
ZEND_ARG_INFO(0, a)
62-
ZEND_ARG_INFO(0, b)
63-
ZEND_END_ARG_INFO()
64-
65-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_mul, 0)
66-
ZEND_ARG_INFO(0, a)
67-
ZEND_ARG_INFO(0, b)
6857
ZEND_END_ARG_INFO()
6958

70-
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div_qr, 0, 0, 2)
59+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_binary, 0, 0, 2)
7160
ZEND_ARG_INFO(0, a)
7261
ZEND_ARG_INFO(0, b)
73-
ZEND_ARG_INFO(0, round)
7462
ZEND_END_ARG_INFO()
7563

76-
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div_r, 0, 0, 2)
64+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div, 0, 0, 2)
7765
ZEND_ARG_INFO(0, a)
7866
ZEND_ARG_INFO(0, b)
7967
ZEND_ARG_INFO(0, round)
8068
ZEND_END_ARG_INFO()
8169

82-
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_div_q, 0, 0, 2)
83-
ZEND_ARG_INFO(0, a)
84-
ZEND_ARG_INFO(0, b)
85-
ZEND_ARG_INFO(0, round)
86-
ZEND_END_ARG_INFO()
87-
88-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_mod, 0)
89-
ZEND_ARG_INFO(0, a)
90-
ZEND_ARG_INFO(0, b)
91-
ZEND_END_ARG_INFO()
92-
93-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_divexact, 0)
94-
ZEND_ARG_INFO(0, a)
95-
ZEND_ARG_INFO(0, b)
96-
ZEND_END_ARG_INFO()
97-
98-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_neg, 0)
99-
ZEND_ARG_INFO(0, a)
100-
ZEND_END_ARG_INFO()
101-
102-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_abs, 0)
103-
ZEND_ARG_INFO(0, a)
104-
ZEND_END_ARG_INFO()
105-
106-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_fact, 0)
107-
ZEND_ARG_INFO(0, a)
108-
ZEND_END_ARG_INFO()
109-
110-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_pow, 0)
70+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_pow, 0, 0, 2)
11171
ZEND_ARG_INFO(0, base)
11272
ZEND_ARG_INFO(0, exp)
11373
ZEND_END_ARG_INFO()
11474

115-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_powm, 0)
75+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_powm, 0, 0, 3)
11676
ZEND_ARG_INFO(0, base)
11777
ZEND_ARG_INFO(0, exp)
11878
ZEND_ARG_INFO(0, mod)
11979
ZEND_END_ARG_INFO()
12080

121-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_sqrt, 0)
122-
ZEND_ARG_INFO(0, a)
123-
ZEND_END_ARG_INFO()
124-
125-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_sqrtrem, 0)
126-
ZEND_ARG_INFO(0, a)
127-
ZEND_END_ARG_INFO()
128-
129-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_root, 0)
130-
ZEND_ARG_INFO(0, a)
131-
ZEND_ARG_INFO(0, nth)
132-
ZEND_END_ARG_INFO()
133-
134-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_rootrem, 0)
81+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_root, 0, 0, 2)
13582
ZEND_ARG_INFO(0, a)
13683
ZEND_ARG_INFO(0, nth)
13784
ZEND_END_ARG_INFO()
13885

139-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_perfect_square, 0)
140-
ZEND_ARG_INFO(0, a)
141-
ZEND_END_ARG_INFO()
142-
14386
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_prob_prime, 0, 0, 1)
14487
ZEND_ARG_INFO(0, a)
14588
ZEND_ARG_INFO(0, reps)
14689
ZEND_END_ARG_INFO()
14790

148-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_gcd, 0)
149-
ZEND_ARG_INFO(0, a)
150-
ZEND_ARG_INFO(0, b)
151-
ZEND_END_ARG_INFO()
152-
153-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_gcdext, 0)
154-
ZEND_ARG_INFO(0, a)
155-
ZEND_ARG_INFO(0, b)
156-
ZEND_END_ARG_INFO()
157-
158-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_invert, 0)
159-
ZEND_ARG_INFO(0, a)
160-
ZEND_ARG_INFO(0, b)
161-
ZEND_END_ARG_INFO()
162-
163-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_jacobi, 0)
164-
ZEND_ARG_INFO(0, a)
165-
ZEND_ARG_INFO(0, b)
166-
ZEND_END_ARG_INFO()
167-
168-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_legendre, 0)
169-
ZEND_ARG_INFO(0, a)
170-
ZEND_ARG_INFO(0, b)
171-
ZEND_END_ARG_INFO()
172-
173-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_cmp, 0)
174-
ZEND_ARG_INFO(0, a)
175-
ZEND_ARG_INFO(0, b)
176-
ZEND_END_ARG_INFO()
177-
178-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_sign, 0)
179-
ZEND_ARG_INFO(0, a)
180-
ZEND_END_ARG_INFO()
181-
18291
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_random, 0, 0, 0)
18392
ZEND_ARG_INFO(0, limiter)
18493
ZEND_END_ARG_INFO()
18594

186-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_and, 0)
187-
ZEND_ARG_INFO(0, a)
188-
ZEND_ARG_INFO(0, b)
189-
ZEND_END_ARG_INFO()
190-
191-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_or, 0)
192-
ZEND_ARG_INFO(0, a)
193-
ZEND_ARG_INFO(0, b)
194-
ZEND_END_ARG_INFO()
195-
196-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_com, 0)
197-
ZEND_ARG_INFO(0, a)
198-
ZEND_END_ARG_INFO()
199-
200-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_xor, 0)
201-
ZEND_ARG_INFO(0, a)
202-
ZEND_ARG_INFO(0, b)
203-
ZEND_END_ARG_INFO()
204-
20595
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_setbit, 0, 0, 2)
206-
ZEND_ARG_INFO(1, a)
96+
ZEND_ARG_INFO(0, a)
20797
ZEND_ARG_INFO(0, index)
20898
ZEND_ARG_INFO(0, set_clear)
20999
ZEND_END_ARG_INFO()
210100

211-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_clrbit, 0)
212-
ZEND_ARG_INFO(1, a)
213-
ZEND_ARG_INFO(0, index)
214-
ZEND_END_ARG_INFO()
215-
216-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_testbit, 0)
101+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_bit, 0, 0, 2)
217102
ZEND_ARG_INFO(0, a)
218103
ZEND_ARG_INFO(0, index)
219104
ZEND_END_ARG_INFO()
220105

221-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_popcount, 0)
222-
ZEND_ARG_INFO(0, a)
223-
ZEND_END_ARG_INFO()
224-
225-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_hamdist, 0)
226-
ZEND_ARG_INFO(0, a)
227-
ZEND_ARG_INFO(0, b)
228-
ZEND_END_ARG_INFO()
229-
230-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_scan0, 0)
106+
ZEND_BEGIN_ARG_INFO_EX(arginfo_gmp_scan, 0, 0, 2)
231107
ZEND_ARG_INFO(0, a)
232108
ZEND_ARG_INFO(0, start)
233109
ZEND_END_ARG_INFO()
234110

235-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_scan1, 0)
236-
ZEND_ARG_INFO(0, a)
237-
ZEND_ARG_INFO(0, start)
238-
ZEND_END_ARG_INFO()
239-
240-
ZEND_BEGIN_ARG_INFO(arginfo_gmp_nextprime, 0)
241-
ZEND_ARG_INFO(0, a)
242-
ZEND_END_ARG_INFO()
243-
244111
/* }}} */
245112

246113
ZEND_DECLARE_MODULE_GLOBALS(gmp)
@@ -249,49 +116,49 @@ static ZEND_GINIT_FUNCTION(gmp);
249116
/* {{{ gmp_functions[]
250117
*/
251118
const zend_function_entry gmp_functions[] = {
252-
ZEND_FE(gmp_init, arginfo_gmp_init)
253-
ZEND_FE(gmp_intval, arginfo_gmp_intval)
254-
ZEND_FE(gmp_strval, arginfo_gmp_strval)
255-
ZEND_FE(gmp_add, arginfo_gmp_add)
256-
ZEND_FE(gmp_sub, arginfo_gmp_sub)
257-
ZEND_FE(gmp_mul, arginfo_gmp_mul)
258-
ZEND_FE(gmp_div_qr, arginfo_gmp_div_qr)
259-
ZEND_FE(gmp_div_q, arginfo_gmp_div_q)
260-
ZEND_FE(gmp_div_r, arginfo_gmp_div_r)
261-
ZEND_FALIAS(gmp_div, gmp_div_q, arginfo_gmp_div_q)
262-
ZEND_FE(gmp_mod, arginfo_gmp_mod)
263-
ZEND_FE(gmp_divexact, arginfo_gmp_divexact)
264-
ZEND_FE(gmp_neg, arginfo_gmp_neg)
265-
ZEND_FE(gmp_abs, arginfo_gmp_abs)
266-
ZEND_FE(gmp_fact, arginfo_gmp_fact)
267-
ZEND_FE(gmp_sqrt, arginfo_gmp_sqrt)
268-
ZEND_FE(gmp_sqrtrem, arginfo_gmp_sqrtrem)
269-
ZEND_FE(gmp_root, arginfo_gmp_root)
270-
ZEND_FE(gmp_rootrem, arginfo_gmp_rootrem)
271-
ZEND_FE(gmp_pow, arginfo_gmp_pow)
272-
ZEND_FE(gmp_powm, arginfo_gmp_powm)
273-
ZEND_FE(gmp_perfect_square, arginfo_gmp_perfect_square)
274-
ZEND_FE(gmp_prob_prime, arginfo_gmp_prob_prime)
275-
ZEND_FE(gmp_gcd, arginfo_gmp_gcd)
276-
ZEND_FE(gmp_gcdext, arginfo_gmp_gcdext)
277-
ZEND_FE(gmp_invert, arginfo_gmp_invert)
278-
ZEND_FE(gmp_jacobi, arginfo_gmp_jacobi)
279-
ZEND_FE(gmp_legendre, arginfo_gmp_legendre)
280-
ZEND_FE(gmp_cmp, arginfo_gmp_cmp)
281-
ZEND_FE(gmp_sign, arginfo_gmp_sign)
282-
ZEND_FE(gmp_random, arginfo_gmp_random)
283-
ZEND_FE(gmp_and, arginfo_gmp_and)
284-
ZEND_FE(gmp_or, arginfo_gmp_or)
285-
ZEND_FE(gmp_com, arginfo_gmp_com)
286-
ZEND_FE(gmp_xor, arginfo_gmp_xor)
287-
ZEND_FE(gmp_setbit, arginfo_gmp_setbit)
288-
ZEND_FE(gmp_clrbit, arginfo_gmp_clrbit)
289-
ZEND_FE(gmp_scan0, arginfo_gmp_scan0)
290-
ZEND_FE(gmp_scan1, arginfo_gmp_scan1)
291-
ZEND_FE(gmp_testbit,arginfo_gmp_testbit)
292-
ZEND_FE(gmp_popcount, arginfo_gmp_popcount)
293-
ZEND_FE(gmp_hamdist, arginfo_gmp_hamdist)
294-
ZEND_FE(gmp_nextprime, arginfo_gmp_nextprime)
119+
ZEND_FE(gmp_init, arginfo_gmp_init)
120+
ZEND_FE(gmp_intval, arginfo_gmp_intval)
121+
ZEND_FE(gmp_strval, arginfo_gmp_strval)
122+
ZEND_FE(gmp_add, arginfo_gmp_binary)
123+
ZEND_FE(gmp_sub, arginfo_gmp_binary)
124+
ZEND_FE(gmp_mul, arginfo_gmp_binary)
125+
ZEND_FE(gmp_div_qr, arginfo_gmp_div)
126+
ZEND_FE(gmp_div_q, arginfo_gmp_div)
127+
ZEND_FE(gmp_div_r, arginfo_gmp_div)
128+
ZEND_FALIAS(gmp_div, gmp_div_q, arginfo_gmp_div)
129+
ZEND_FE(gmp_mod, arginfo_gmp_binary)
130+
ZEND_FE(gmp_divexact, arginfo_gmp_binary)
131+
ZEND_FE(gmp_neg, arginfo_gmp_unary)
132+
ZEND_FE(gmp_abs, arginfo_gmp_unary)
133+
ZEND_FE(gmp_fact, arginfo_gmp_unary)
134+
ZEND_FE(gmp_sqrt, arginfo_gmp_unary)
135+
ZEND_FE(gmp_sqrtrem, arginfo_gmp_unary)
136+
ZEND_FE(gmp_root, arginfo_gmp_root)
137+
ZEND_FE(gmp_rootrem, arginfo_gmp_root)
138+
ZEND_FE(gmp_pow, arginfo_gmp_pow)
139+
ZEND_FE(gmp_powm, arginfo_gmp_powm)
140+
ZEND_FE(gmp_perfect_square, arginfo_gmp_unary)
141+
ZEND_FE(gmp_prob_prime, arginfo_gmp_prob_prime)
142+
ZEND_FE(gmp_gcd, arginfo_gmp_binary)
143+
ZEND_FE(gmp_gcdext, arginfo_gmp_binary)
144+
ZEND_FE(gmp_invert, arginfo_gmp_binary)
145+
ZEND_FE(gmp_jacobi, arginfo_gmp_binary)
146+
ZEND_FE(gmp_legendre, arginfo_gmp_binary)
147+
ZEND_FE(gmp_cmp, arginfo_gmp_binary)
148+
ZEND_FE(gmp_sign, arginfo_gmp_unary)
149+
ZEND_FE(gmp_random, arginfo_gmp_random)
150+
ZEND_FE(gmp_and, arginfo_gmp_binary)
151+
ZEND_FE(gmp_or, arginfo_gmp_binary)
152+
ZEND_FE(gmp_com, arginfo_gmp_unary)
153+
ZEND_FE(gmp_xor, arginfo_gmp_binary)
154+
ZEND_FE(gmp_setbit, arginfo_gmp_setbit)
155+
ZEND_FE(gmp_clrbit, arginfo_gmp_bit)
156+
ZEND_FE(gmp_testbit, arginfo_gmp_bit)
157+
ZEND_FE(gmp_scan0, arginfo_gmp_scan)
158+
ZEND_FE(gmp_scan1, arginfo_gmp_scan)
159+
ZEND_FE(gmp_popcount, arginfo_gmp_unary)
160+
ZEND_FE(gmp_hamdist, arginfo_gmp_binary)
161+
ZEND_FE(gmp_nextprime, arginfo_gmp_unary)
295162
PHP_FE_END
296163
};
297164
/* }}} */
@@ -1813,7 +1680,7 @@ ZEND_FUNCTION(gmp_xor)
18131680
}
18141681
/* }}} */
18151682

1816-
/* {{{ proto void gmp_setbit(GMP &a, int index[, bool set_clear])
1683+
/* {{{ proto void gmp_setbit(GMP a, int index[, bool set_clear])
18171684
Sets or clear bit in a */
18181685
ZEND_FUNCTION(gmp_setbit)
18191686
{
@@ -1841,7 +1708,7 @@ ZEND_FUNCTION(gmp_setbit)
18411708
}
18421709
/* }}} */
18431710

1844-
/* {{{ proto void gmp_clrbit(GMP &a, int index)
1711+
/* {{{ proto void gmp_clrbit(GMP a, int index)
18451712
Clears bit in a */
18461713
ZEND_FUNCTION(gmp_clrbit)
18471714
{

0 commit comments

Comments
 (0)