@@ -83,7 +83,8 @@ reader_parse_header(BinaryReader *reader, const uint8_t *data, size_t file_size)
8383
8484 /* Read header fields with byte-swapping if needed */
8585 uint64_t start_time_us , sample_interval_us , string_table_offset , frame_table_offset ;
86- uint32_t sample_count , thread_count , compression_type ;
86+ uint64_t sample_count ;
87+ uint32_t thread_count , compression_type ;
8788
8889 memcpy (& start_time_us , & data [HDR_OFF_START_TIME ], HDR_SIZE_START_TIME );
8990 memcpy (& sample_interval_us , & data [HDR_OFF_INTERVAL ], HDR_SIZE_INTERVAL );
@@ -95,7 +96,7 @@ reader_parse_header(BinaryReader *reader, const uint8_t *data, size_t file_size)
9596
9697 reader -> start_time_us = SWAP64_IF (reader -> needs_swap , start_time_us );
9798 reader -> sample_interval_us = SWAP64_IF (reader -> needs_swap , sample_interval_us );
98- reader -> sample_count = SWAP32_IF (reader -> needs_swap , sample_count );
99+ reader -> sample_count = SWAP64_IF (reader -> needs_swap , sample_count );
99100 reader -> thread_count = SWAP32_IF (reader -> needs_swap , thread_count );
100101 reader -> string_table_offset = SWAP64_IF (reader -> needs_swap , string_table_offset );
101102 reader -> frame_table_offset = SWAP64_IF (reader -> needs_swap , frame_table_offset );
@@ -993,10 +994,10 @@ emit_batch(RemoteDebuggingState *state, PyObject *collector,
993994
994995/* Helper to invoke progress callback, returns -1 on error */
995996static inline int
996- invoke_progress_callback (PyObject * callback , Py_ssize_t current , uint32_t total )
997+ invoke_progress_callback (PyObject * callback , Py_ssize_t current , uint64_t total )
997998{
998999 if (callback && callback != Py_None ) {
999- PyObject * result = PyObject_CallFunction (callback , "nI " , current , total );
1000+ PyObject * result = PyObject_CallFunction (callback , "nK " , current , ( unsigned long long ) total );
10001001 if (result ) {
10011002 Py_DECREF (result );
10021003 } else {
@@ -1248,8 +1249,8 @@ binary_reader_replay(BinaryReader *reader, PyObject *collector, PyObject *progre
12481249
12491250 if ((uint64_t )replayed != reader -> sample_count ) {
12501251 PyErr_Format (PyExc_ValueError ,
1251- "Sample count mismatch: header declares %u samples but replay decoded %zd" ,
1252- reader -> sample_count , replayed );
1252+ "Sample count mismatch: header declares %llu samples but replay decoded %zd" ,
1253+ ( unsigned long long ) reader -> sample_count , replayed );
12531254 return -1 ;
12541255 }
12551256
@@ -1270,7 +1271,7 @@ binary_reader_get_info(BinaryReader *reader)
12701271 return NULL ;
12711272 }
12721273 return Py_BuildValue (
1273- "{s:I, s:N, s:K, s:K, s:I , s:I, s:I, s:I, s:i}" ,
1274+ "{s:I, s:N, s:K, s:K, s:K , s:I, s:I, s:I, s:i}" ,
12741275 "version" , BINARY_FORMAT_VERSION ,
12751276 "python_version" , py_version ,
12761277 "start_time_us" , reader -> start_time_us ,
0 commit comments