summaryrefslogtreecommitdiff
path: root/drivers.c
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2012-05-21 15:41:14 -0400
committerEric S. Raymond <esr@thyrsus.com>2012-05-21 15:42:18 -0400
commitd5fc020a1cd98bc3fa45d82d8267150edee7624f (patch)
tree0091edb990f8cda6cc31237c0137ead4b4d09dec /drivers.c
parentfce37f463d439a49dfd039b3aa1d30c8afe7b0ed (diff)
downloadgpsd-d5fc020a1cd98bc3fa45d82d8267150edee7624f.tar.gz
Explicitly initialize AIS queue pointer.
Diffstat (limited to 'drivers.c')
-rw-r--r--drivers.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers.c b/drivers.c
index 5537a55e..999419d9 100644
--- a/drivers.c
+++ b/drivers.c
@@ -1364,6 +1364,12 @@ static bool aivdm_decode(const char *buf, size_t buflen,
}
/*@ +fixedformalarray +usedef +branchstate @*/
+static void aivdm_event_hook(struct gps_device_t *session, event_t event)
+{
+ if (event == event_configure)
+ /*@i1@*/session->aivdm->type24_queue.index = 0;
+}
+
static gps_mask_t aivdm_analyze(struct gps_device_t *session)
{
if (session->packet.type == AIVDM_PACKET) {
@@ -1393,7 +1399,7 @@ static const struct gps_type_t aivdm = {
.get_packet = generic_get, /* how to get a packet */
.parse_packet = aivdm_analyze, /* how to analyze a packet */
.rtcm_writer = NULL, /* don't send RTCM data, */
- .event_hook = NULL, /* lifetime event handler */
+ .event_hook = aivdm_event_hook,/* lifetime event handler */
#ifdef RECONFIGURE_ENABLE
.speed_switcher = NULL, /* no speed switcher */
.mode_switcher = NULL, /* no mode switcher */