summaryrefslogtreecommitdiffstats
path: root/drivers/isimodem/call-meter.c
diff options
context:
space:
mode:
authorAki Niemi <aki.niemi@nokia.com>2010-11-18 14:08:30 +0200
committerAki Niemi <aki.niemi@nokia.com>2010-12-22 17:13:47 +0200
commitb8b1f6c9698a646ba316df29bf97f609e00a460f (patch)
tree3b15f836d1b104e8e2364e77aec78e526c86331e /drivers/isimodem/call-meter.c
parent5a8cf6552d01ddc3c92386a9563e5012acbf8904 (diff)
downloadofono-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.c26
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 = {