@@ -68,7 +68,7 @@ _declspec(align(4))
6868 /* filename cannot be NULL: "<unknown>" is used if the Python frame
6969 filename is NULL */
7070 PyObject * filename ;
71- int lineno ;
71+ unsigned int lineno ;
7272} frame_t ;
7373
7474typedef struct {
@@ -268,12 +268,13 @@ tracemalloc_get_frame(PyFrameObject *pyframe, frame_t *frame)
268268 PyCodeObject * code ;
269269 PyObject * filename ;
270270 _Py_hashtable_entry_t * entry ;
271+ int lineno ;
271272
272273 frame -> filename = unknown_filename ;
273- frame -> lineno = PyFrame_GetLineNumber (pyframe );
274- assert ( frame -> lineno >= 0 );
275- if ( frame -> lineno < 0 )
276- frame -> lineno = 0 ;
274+ lineno = PyFrame_GetLineNumber (pyframe );
275+ if ( lineno < 0 )
276+ lineno = 0 ;
277+ frame -> lineno = ( unsigned int ) lineno ;
277278
278279 code = pyframe -> f_code ;
279280 if (code == NULL ) {
@@ -377,7 +378,6 @@ traceback_get_frames(traceback_t *traceback)
377378 for (pyframe = tstate -> frame ; pyframe != NULL ; pyframe = pyframe -> f_back ) {
378379 tracemalloc_get_frame (pyframe , & traceback -> frames [traceback -> nframe ]);
379380 assert (traceback -> frames [traceback -> nframe ].filename != NULL );
380- assert (traceback -> frames [traceback -> nframe ].lineno >= 0 );
381381 traceback -> nframe ++ ;
382382 if (traceback -> nframe == tracemalloc_config .max_nframe )
383383 break ;
@@ -941,15 +941,6 @@ tracemalloc_stop(void)
941941 tracemalloc_traceback = NULL ;
942942}
943943
944- static PyObject *
945- lineno_as_obj (int lineno )
946- {
947- if (lineno >= 0 )
948- return PyLong_FromLong (lineno );
949- else
950- Py_RETURN_NONE ;
951- }
952-
953944PyDoc_STRVAR (tracemalloc_is_tracing_doc ,
954945 "is_tracing()->bool\n"
955946 "\n"
@@ -992,8 +983,7 @@ frame_to_pyobject(frame_t *frame)
992983 Py_INCREF (frame -> filename );
993984 PyTuple_SET_ITEM (frame_obj , 0 , frame -> filename );
994985
995- assert (frame -> lineno >= 0 );
996- lineno_obj = lineno_as_obj (frame -> lineno );
986+ lineno_obj = PyLong_FromUnsignedLong (frame -> lineno );
997987 if (lineno_obj == NULL ) {
998988 Py_DECREF (frame_obj );
999989 return NULL ;
0 commit comments