instance->SendSignal(picojson::value(signal_name), value);
} else if (!strcmp(signal_name, "CallChanged")) {
- const gchar* key = NULL;
+ gchar* key = NULL;
const gchar* state = NULL;
const gchar* line_id = NULL;
const gchar* contact = NULL;
contact_err = picojson::parse(contact_obj, contact,
contact + strlen(contact));
}
+ g_free(key);
+ g_variant_unref(value);
}
picojson::value::object o;
o["state"] = state ? picojson::value(state) : picojson::value("");
SendSyncErrorReply(UNKNOWN_ERR);
} else {
picojson::value::object o;
- const gchar* key = NULL;
+ gchar* key = NULL;
const gchar* state = NULL;
const gchar* line_id = NULL;
const gchar* contact = NULL;
line_id = g_variant_get_string(value, NULL);
else if (!strcmp(key, "contact"))
contact = g_variant_get_string(value, NULL);
+
+ g_free(key);
+ g_variant_unref(value);
}
o["state"] = state ? picojson::value(state) : picojson::value("");
service->id = sid;
service->protocol = "gsm";
- char* key = nullptr;
+ gchar* key = nullptr;
GVariant* value = nullptr;
while (g_variant_iter_next(props, "{sv}", &key, &value)) {
UpdateServiceProperty(service, key, value);
+ g_free(key);
+ g_variant_unref(value);
}
- g_variant_unref(value);
return true;
}
call->protocol = "gsm";
call->duration = 0;
call->state = kCallStateInit;
- char* key = nullptr;
+ gchar* key = nullptr;
GVariant* value = nullptr;
while (g_variant_iter_next(props, "{sv}", &key, &value)) {
UpdateCallProperty(call, key, value);
+ g_free(key);
+ g_variant_unref(value);
}
- g_variant_unref(value);
if (!call->service) {
// extract service id from call id
while (g_variant_iter_next(prop_iter, "s", &value)) {
const gchar* num = g_variant_get_string(value, nullptr);
results.push_back(picojson::value(num));
+ g_variant_unref(value);
}
g_variant_iter_free(prop_iter);
GVariantIter* modems;
g_variant_get(res, "(a(oa{sv}))", &modems);
- char* path;
+ gchar* path;
GVariantIter* props;
while (g_variant_iter_next(modems, "(oa{sv})", &path, &props)) {
std::string sid = IdFromDbus(path);
InitService(service, sid, props);
if (!found)
services_.push_back(service);
+ g_free(path);
+ g_variant_iter_free(props);
}
- g_variant_iter_free(props);
g_variant_iter_free(modems);
g_variant_unref(res);
GVariantIter* calls;
g_variant_get(res, "(a(oa{sv}))", &calls);
- char* obj;
+ gchar* obj;
GVariantIter* props;
picojson::value::array results;
while (g_variant_iter_next(calls, "(oa{sv})", &obj, &props)) {
InitCall(call, cid, props);
calls_.push_back(call);
}
+ g_free(obj);
+ g_variant_iter_free(props);
}
for (auto c : calls_) {
GVariantIter* calls;
g_variant_get(res, "(ao)", &calls);
- char* obj = nullptr;
+ gchar* obj = nullptr;
while (g_variant_iter_next(calls, "o", &obj)) {
std::string call_id = IdFromDbus(obj);
TelephonyCall* call = FindCall(call_id);
call->saved_state = call->state;
call->state = kCallStateConference; // hangup/hold/split can change state
conf->participants.push_back(call);
+ g_free(obj);
}
g_variant_iter_free(calls);
results.push_back(picojson::value(number));
}
g_variant_iter_free(num_iter);
- g_variant_unref(value);
}
+ g_free(key);
+ g_variant_unref(value);
}
instance_->SendSuccessReply(msg, picojson::value(results));