@@ -82,29 +82,23 @@ static struct module_state _state;
8282 * must be explicitly free'd when done being used.
8383 */
8484#if defined(_MSC_VER ) && (_MSC_VER >= 1400 )
85- #define INT2STRING (buffer , i ) \
86- *(buffer) = malloc(_scprintf("%d", (i)) + 1), \
87- (!(buffer) ? \
88- -1 : \
89- _snprintf_s(*(buffer), \
90- _scprintf("%d", (i)) + 1, \
91- _scprintf("%d", (i)) + 1, \
92- "%d", \
93- (i)))
85+ #define INT2STRING (buffer , i ) \
86+ _snprintf_s((buffer), \
87+ _scprintf("%d", (i)) + 1, \
88+ _scprintf("%d", (i)) + 1, \
89+ "%d", \
90+ (i))
9491#define STRCAT (dest , n , src ) strcat_s((dest), (n), (src))
9592#else
96- #define INT2STRING (buffer , i ) \
97- *(buffer) = malloc(_scprintf("%d", (i)) + 1), \
98- (!(buffer) ? \
99- -1 : \
100- _snprintf(*(buffer), \
101- _scprintf("%d", (i)) + 1, \
102- "%d", \
103- (i)))
93+ #define INT2STRING (buffer , i ) \
94+ _snprintf((buffer), \
95+ _scprintf("%d", (i)) + 1, \
96+ "%d", \
97+ (i))
10498#define STRCAT (dest , n , src ) strcat((dest), (src))
10599#endif
106100#else
107- #define INT2STRING (buffer , i ) asprintf ((buffer), "%d", (i))
101+ #define INT2STRING (buffer , i ) snprintf ((buffer), sizeof((buffer) ), "%d", (i))
108102#define STRCAT (dest , n , src ) strcat((dest), (src))
109103#endif
110104
@@ -464,22 +458,17 @@ static int _write_element_to_buffer(PyObject* self, buffer_t buffer, int type_by
464458 }
465459 for (i = 0 ; i < items ; i ++ ) {
466460 int list_type_byte = buffer_save_space (buffer , 1 );
467- char * name = NULL ;
461+ char name [ 16 ] ;
468462 PyObject * item_value ;
469463
470464 if (list_type_byte == -1 ) {
471465 PyErr_NoMemory ();
472466 return 0 ;
473467 }
474- if (INT2STRING (& name , (int )i ) < 0 || !name ) {
475- PyErr_NoMemory ();
476- return 0 ;
477- }
468+ INT2STRING (name , (int )i );
478469 if (!buffer_write_bytes (buffer , name , (int )strlen (name ) + 1 )) {
479- free (name );
480470 return 0 ;
481471 }
482- free (name );
483472
484473 if (!(item_value = PySequence_GetItem (value , i )))
485474 return 0 ;
0 commit comments