@@ -310,6 +310,27 @@ PyObject *sonyflake_next_n(struct sonyflake_state *self, Py_ssize_t n, struct so
310310 return out ;
311311}
312312
313+ PyObject * sonyflake_next_py (struct sonyflake_state * self , PyObject * args , struct sonyflake_next_sleep_info * sleep_info ) {
314+ Py_ssize_t n = 0 ;
315+
316+ if (args ) {
317+ if (!PyArg_ParseTuple (args , "n" , & n )) {
318+ return NULL ;
319+ }
320+
321+ if (n <= 0 ) {
322+ PyErr_SetString (PyExc_ValueError , "n must be positive" );
323+ return NULL ;
324+ }
325+ }
326+
327+ if (n > 0 ) {
328+ return sonyflake_next_n (self , n , sleep_info );
329+ }
330+
331+ return sonyflake_next (self , sleep_info );
332+ }
333+
313334static PyObject * sonyflake_repr (struct sonyflake_state * self ) {
314335 PyObject * s , * args_list = PyList_New (self -> machine_ids_len + 1 );
315336
@@ -363,27 +384,13 @@ static PyObject *sonyflake_repr(struct sonyflake_state *self) {
363384static PyObject * sonyflake_iternext (struct sonyflake_state * self ) {
364385 struct sonyflake_next_sleep_info sleep_info ;
365386
366- PyObject * sonyflake_id = sonyflake_next (self , & sleep_info );
367-
368- return sonyflake_sleep (sonyflake_id , & sleep_info );
387+ return sonyflake_sleep (sonyflake_next_py (self , NULL , & sleep_info ), & sleep_info );
369388}
370389
371390static PyObject * sonyflake_call (struct sonyflake_state * self , PyObject * args ) {
372- Py_ssize_t n = 0 ;
373-
374- if (!PyArg_ParseTuple (args , "n" , & n )) {
375- return NULL ;
376- }
377-
378- if (n <= 0 ) {
379- PyErr_SetString (PyExc_ValueError , "n must be positive" );
380- return NULL ;
381- }
382-
383391 struct sonyflake_next_sleep_info sleep_info ;
384- PyObject * sonyflake_ids = sonyflake_next_n (self , n , & sleep_info );
385392
386- return sonyflake_sleep (sonyflake_ids , & sleep_info );
393+ return sonyflake_sleep (sonyflake_next_py ( self , args , & sleep_info ) , & sleep_info );
387394}
388395
389396PyDoc_STRVAR (sonyflake_doc ,
0 commit comments