summaryrefslogtreecommitdiff
path: root/timebase.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2011-01-21 03:21:43 -0500
committerEric S. Raymond <esr@thyrsus.com>2011-01-21 03:21:43 -0500
commit957f747cc8e302e694ab9ea3ed52ac3cd204cae5 (patch)
treec00fa0d8a4087a8fc9b70f0fb9bf84da2426d2df /timebase.c
parent0737b7e794d4dc48a2003d6dfd67ec85b5d6499e (diff)
downloadgpsd-957f747cc8e302e694ab9ea3ed52ac3cd204cae5.tar.gz
Refactoring step. All regression tests pass.
Diffstat (limited to 'timebase.c')
-rw-r--r--timebase.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/timebase.c b/timebase.c
index 38a191e6..ef97e3a4 100644
--- a/timebase.c
+++ b/timebase.c
@@ -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;
}