diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2011-01-21 03:21:43 -0500 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-01-21 03:21:43 -0500 |
commit | 957f747cc8e302e694ab9ea3ed52ac3cd204cae5 (patch) | |
tree | c00fa0d8a4087a8fc9b70f0fb9bf84da2426d2df /timebase.c | |
parent | 0737b7e794d4dc48a2003d6dfd67ec85b5d6499e (diff) | |
download | gpsd-957f747cc8e302e694ab9ea3ed52ac3cd204cae5.tar.gz |
Refactoring step. All regression tests pass.
Diffstat (limited to 'timebase.c')
-rw-r--r-- | timebase.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -199,9 +199,7 @@ double gpsd_resolve_time(/*@in@*/struct gps_device_t *session, gpsd_report(LOG_INF, "GPS week 10-bit rollover detected.\n"); ++session->context->rollovers; } - session->context->gps_week = (unsigned short int)(week + session->context->rollovers * 1024); - session->context->gps_tow = tow; - session->context->valid |= GPS_TIME_VALID; + week += session->context->rollovers * 1024; /* * This code copes with both conventional GPS weeks and the "extended" @@ -221,6 +219,11 @@ double gpsd_resolve_time(/*@in@*/struct gps_device_t *session, /*@i@*/ t = last_rollover + (week * SECS_PER_WEEK) + tow; } t -= session->context->leap_seconds; + + session->context->gps_week = week; + session->context->gps_tow = tow; + session->context->valid |= GPS_TIME_VALID; + gpsd_rollover_check(session, session->newdata.time); return t; } |