@@ -361,12 +361,21 @@ timelib_time *timelib_add_wall(timelib_time *old_time, timelib_rel_time *interva
361
361
timelib_update_ts (t , NULL );
362
362
}
363
363
364
- do_range_limit (0 , 1000000 , 1000000 , & interval -> us , & interval -> s );
365
- t -> sse += bias * timelib_hms_to_seconds (interval -> h , interval -> i , interval -> s );
366
- timelib_update_from_sse (t );
367
- t -> us += interval -> us * bias ;
368
- if (bias == -1 && interval -> us > 0 ) {
369
- t -> sse -- ;
364
+ if (interval -> us == 0 ) {
365
+ t -> sse += bias * timelib_hms_to_seconds (interval -> h , interval -> i , interval -> s );
366
+ timelib_update_from_sse (t );
367
+ } else {
368
+ timelib_rel_time * temp_interval = timelib_rel_time_clone (interval );
369
+
370
+ do_range_limit (0 , 1000000 , 1000000 , & temp_interval -> us , & temp_interval -> s );
371
+ t -> sse += bias * timelib_hms_to_seconds (temp_interval -> h , temp_interval -> i , temp_interval -> s );
372
+ timelib_update_from_sse (t );
373
+ t -> us += temp_interval -> us * bias ;
374
+
375
+ timelib_do_normalize (t );
376
+ timelib_update_ts (t , NULL );
377
+
378
+ timelib_rel_time_dtor (temp_interval );
370
379
}
371
380
timelib_do_normalize (t );
372
381
}
0 commit comments