Hi Szymon, On Wed, Oct 08, 2014 at 09:12:18AM +0200, Szymon Janc wrote: > --- > android/handsfree.c | 36 ++++++++++++++++++++++++------------ > 1 file changed, 24 insertions(+), 12 deletions(-) This one would benefit from small commit msg. > > diff --git a/android/handsfree.c b/android/handsfree.c > index d83f0a2..e7b8a6e 100644 > --- a/android/handsfree.c > +++ b/android/handsfree.c > @@ -131,6 +131,7 @@ struct hf_device { > struct hfp_codec codecs[CODECS_COUNT]; > > guint ring; > + char *clip; > bool hsp; > > struct hfp_gw *gw; > @@ -255,6 +256,11 @@ static void device_cleanup(struct hf_device *dev) > if (dev->ring) { > g_source_remove(dev->ring); > dev->ring = 0; > + > + if (dev->clip) { > + g_free(dev->clip); > + dev->clip = NULL; Is this needed? apparently there is memset(dev,0,) after that. Best regards Andrei Emeltchenko > + } > } > > set_audio_state(dev, HAL_EV_HANDSFREE_AUDIO_STATE_DISCONNECTED); > @@ -2018,12 +2024,12 @@ done: > > static gboolean ring_cb(gpointer user_data) > { > - char *clip = user_data; > + struct hf_device *dev = user_data; > > - hfp_gw_send_info(device.gw, "RING"); > + hfp_gw_send_info(dev->gw, "RING"); > > - if (device.clip_enabled && clip) > - hfp_gw_send_info(device.gw, "%s", clip); > + if (dev->clip_enabled && dev->clip) > + hfp_gw_send_info(dev->gw, "%s", dev->clip); > > return TRUE; > } > @@ -2065,7 +2071,7 @@ static void phone_state_waiting(int num_active, int num_held, uint8_t type, > static void phone_state_incoming(int num_active, int num_held, uint8_t type, > const uint8_t *number, int number_len) > { > - char *clip, *num; > + char *num; > > if (device.setup_state == HAL_HANDSFREE_CALL_STATE_INCOMING) { > if (device.num_active != num_active || > @@ -2096,19 +2102,20 @@ static void phone_state_incoming(int num_active, int num_held, uint8_t type, > num = number_len ? (char *) number : ""; > > if (type == HAL_HANDSFREE_CALL_ADDRTYPE_INTERNATIONAL && num[0] != '+') > - clip = g_strdup_printf("+CLIP: \"+%s\",%u", num, type); > + device.clip = g_strdup_printf("+CLIP: \"+%s\",%u", num, type); > else > - clip = g_strdup_printf("+CLIP: \"%s\",%u", num, type); > + device.clip = g_strdup_printf("+CLIP: \"%s\",%u", num, type); > > /* send first RING */ > - ring_cb(clip); > + ring_cb(&device); > > device.ring = g_timeout_add_seconds_full(G_PRIORITY_DEFAULT, > RING_TIMEOUT, ring_cb, > - clip, g_free); > - > - if (!device.ring) > - g_free(clip); > + &device, NULL); > + if (!device.ring) { > + g_free(device.clip); > + device.clip = NULL; > + } > } > > static void phone_state_idle(int num_active, int num_held) > @@ -2116,6 +2123,11 @@ static void phone_state_idle(int num_active, int num_held) > if (device.ring) { > g_source_remove(device.ring); > device.ring = 0; > + > + if (device.clip) { > + g_free(device.clip); > + device.clip = NULL; > + } > } > > switch (device.setup_state) { > -- > 1.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html