diff options
author | Aki Niemi <aki.niemi@nokia.com> | 2010-11-18 14:08:30 +0200 |
---|---|---|
committer | Aki Niemi <aki.niemi@nokia.com> | 2010-12-22 17:13:47 +0200 |
commit | b8b1f6c9698a646ba316df29bf97f609e00a460f (patch) | |
tree | 3b15f836d1b104e8e2364e77aec78e526c86331e /drivers/isimodem/call-meter.c | |
parent | 5a8cf6552d01ddc3c92386a9563e5012acbf8904 (diff) | |
download | ofono-b8b1f6c9698a646ba316df29bf97f609e00a460f.tar.bz2 |
isimodem: Adapt and refactor call meter driver
Diffstat (limited to 'drivers/isimodem/call-meter.c')
-rw-r--r-- | drivers/isimodem/call-meter.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/drivers/isimodem/call-meter.c b/drivers/isimodem/call-meter.c index 2fc74c8a..66dae476 100644 --- a/drivers/isimodem/call-meter.c +++ b/drivers/isimodem/call-meter.c @@ -87,17 +87,20 @@ static void isi_puct_set(struct ofono_call_meter *cm, const char *currency, static int isi_call_meter_probe(struct ofono_call_meter *cm, unsigned int vendor, void *user) { - GIsiModem *idx = user; - struct call_meter_data *data = g_try_new0(struct call_meter_data, 1); + GIsiModem *modem = user; + struct call_meter_data *cmd; - if (data == NULL) + cmd = g_try_new0(struct call_meter_data, 1); + if (cmd == NULL) return -ENOMEM; - data->client = g_isi_client_create(idx, PN_SS); - if (data->client == NULL) + cmd->client = g_isi_client_create(modem, PN_SS); + if (cmd->client == NULL) { + g_free(cmd); return -ENOMEM; + } - ofono_call_meter_set_data(cm, data); + ofono_call_meter_set_data(cm, cmd); return 0; } @@ -106,10 +109,13 @@ static void isi_call_meter_remove(struct ofono_call_meter *cm) { struct call_meter_data *data = ofono_call_meter_get_data(cm); - if (data) { - g_isi_client_destroy(data->client); - g_free(data); - } + ofono_call_meter_set_data(cm, NULL); + + if (data == NULL) + return; + + g_isi_client_destroy(data->client); + g_free(data); } static struct ofono_call_meter_driver driver = { |