} else if (!g_strcmp0(key, "Includes")) {
g_variant_get(value, "ao", &char_iter);
- gp_array = g_ptr_array_new();
- while (g_variant_iter_loop(char_iter, "&o", &char_handle))
- g_ptr_array_add(gp_array, (gpointer)char_handle);
-
- if (gp_array->len != 0) {
- service->include_handles.count = gp_array->len;
- service->include_handles.handle =
- __get_string_array_from_gptr_array(gp_array);
+ if (char_iter != NULL) {
+ gp_array = g_ptr_array_new();
+ while (g_variant_iter_loop(char_iter, "&o", &char_handle))
+ g_ptr_array_add(gp_array, (gpointer)char_handle);
+
+ if (gp_array->len != 0) {
+ service->include_handles.count = gp_array->len;
+ service->include_handles.handle =
+ __get_string_array_from_gptr_array(gp_array);
+ }
+ g_ptr_array_free(gp_array, TRUE);
+ g_variant_iter_free(char_iter);
}
- g_ptr_array_free(gp_array, TRUE);
- g_variant_iter_free(char_iter);
} else if (!g_strcmp0(key, "Characteristics")) {
g_variant_get(value, "ao", &char_iter);
- gp_array = g_ptr_array_new();
- while (g_variant_iter_loop(char_iter, "&o", &char_handle))
- g_ptr_array_add(gp_array, (gpointer)char_handle);
-
- if (gp_array->len != 0) {
- service->char_handle.count = gp_array->len;
- service->char_handle.handle =
- __get_string_array_from_gptr_array(gp_array);
+ if (char_iter != NULL) {
+ gp_array = g_ptr_array_new();
+ while (g_variant_iter_loop(char_iter, "&o", &char_handle))
+ g_ptr_array_add(gp_array, (gpointer)char_handle);
+
+ if (gp_array->len != 0) {
+ service->char_handle.count = gp_array->len;
+ service->char_handle.handle =
+ __get_string_array_from_gptr_array(gp_array);
+ }
+ g_ptr_array_free(gp_array, TRUE);
+ g_variant_iter_free(char_iter);
}
BT_DBG("Characteristics count : %d", service->char_handle.count);
- g_ptr_array_free(gp_array, TRUE);
- g_variant_iter_free(char_iter);
}
}