[gnome-disk-utility] Add assertions to gdu-pool
- From: Martin Pitt <martinpitt src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-disk-utility] Add assertions to gdu-pool
- Date: Mon, 15 Feb 2010 16:45:31 +0000 (UTC)
commit 7e51727079e021d32ebe600bf3b6f8613c7d0cdf
Author: Martin Pitt <martin pitt ubuntu com>
Date: Mon Feb 15 17:43:54 2010 +0100
Add assertions to gdu-pool
D-Bus activation startup races still cause frequent crashes/bug reports due to
passing a NULL pool to gdu_pool_*() methods. Add assertions to make the cause
more visible and ease debugging.
https://bugzilla.gnome.org/show_bug.cgi?id=609866
src/gdu/gdu-pool.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 67 insertions(+), 0 deletions(-)
---
diff --git a/src/gdu/gdu-pool.c b/src/gdu/gdu-pool.c
index 5d7ee00..7871746 100644
--- a/src/gdu/gdu-pool.c
+++ b/src/gdu/gdu-pool.c
@@ -1942,6 +1942,7 @@ gdu_pool_new (void)
DBusGConnection *
_gdu_pool_get_connection (GduPool *pool)
{
+ g_assert (pool != NULL);
return pool->priv->bus;
}
@@ -2211,6 +2212,8 @@ gdu_pool_get_by_object_path (GduPool *pool, const char *object_path)
{
GduDevice *ret;
+ g_assert (pool != NULL);
+
ret = g_hash_table_lookup (pool->priv->object_path_to_device, object_path);
if (ret != NULL) {
g_object_ref (ret);
@@ -2233,6 +2236,8 @@ gdu_pool_get_adapter_by_object_path (GduPool *pool, const char *object_path)
{
GduAdapter *ret;
+ g_assert (pool != NULL);
+
ret = g_hash_table_lookup (pool->priv->object_path_to_adapter, object_path);
if (ret != NULL) {
g_object_ref (ret);
@@ -2255,6 +2260,8 @@ gdu_pool_get_expander_by_object_path (GduPool *pool, const char *object_path)
{
GduExpander *ret;
+ g_assert (pool != NULL);
+
ret = g_hash_table_lookup (pool->priv->object_path_to_expander, object_path);
if (ret != NULL) {
g_object_ref (ret);
@@ -2277,6 +2284,8 @@ gdu_pool_get_port_by_object_path (GduPool *pool, const char *object_path)
{
GduPort *ret;
+ g_assert (pool != NULL);
+
ret = g_hash_table_lookup (pool->priv->object_path_to_port, object_path);
if (ret != NULL) {
g_object_ref (ret);
@@ -2301,6 +2310,8 @@ gdu_pool_get_by_device_file (GduPool *pool, const char *device_file)
GduDevice *device;
GduDevice *ret;
+ g_assert (pool != NULL);
+
ret = NULL;
/* TODO: use lookaside hash table */
@@ -2445,6 +2456,8 @@ gdu_pool_get_devices (GduPool *pool)
GList *ret;
GList *l;
+ g_assert (pool != NULL);
+
ret = NULL;
list = g_hash_table_get_values (pool->priv->object_path_to_device);
@@ -2480,6 +2493,8 @@ gdu_pool_get_adapters (GduPool *pool)
{
GList *ret;
+ g_assert (pool != NULL);
+
ret = NULL;
ret = g_hash_table_get_values (pool->priv->object_path_to_adapter);
@@ -2501,6 +2516,8 @@ gdu_pool_get_expanders (GduPool *pool)
{
GList *ret;
+ g_assert (pool != NULL);
+
ret = NULL;
ret = g_hash_table_get_values (pool->priv->object_path_to_expander);
@@ -2522,6 +2539,8 @@ gdu_pool_get_ports (GduPool *pool)
{
GList *ret;
+ g_assert (pool != NULL);
+
ret = NULL;
ret = g_hash_table_get_values (pool->priv->object_path_to_port);
@@ -2543,6 +2562,8 @@ GList *
gdu_pool_get_presentables (GduPool *pool)
{
GList *ret;
+ g_assert (pool != NULL);
+
ret = g_list_copy (pool->priv->presentables);
g_list_foreach (ret, (GFunc) g_object_ref, NULL);
return ret;
@@ -2554,6 +2575,8 @@ gdu_pool_get_enclosed_presentables (GduPool *pool, GduPresentable *presentable)
GList *l;
GList *ret;
+ g_assert (pool != NULL);
+
ret = NULL;
for (l = pool->priv->presentables; l != NULL; l = l->next) {
GduPresentable *p = l->data;
@@ -2587,6 +2610,8 @@ gdu_pool_get_volume_by_device (GduPool *pool, GduDevice *device)
GduPresentable *ret;
GList *l;
+ g_assert (pool != NULL);
+
/* TODO: use lookaside hash table */
ret = NULL;
@@ -2632,6 +2657,8 @@ gdu_pool_get_drive_by_device (GduPool *pool, GduDevice *device)
GduPresentable *ret;
GList *l;
+ g_assert (pool != NULL);
+
/* TODO: use lookaside hash table */
ret = NULL;
@@ -2667,6 +2694,8 @@ gdu_pool_get_linux_md_drive_by_uuid (GduPool *pool, const gchar *uuid)
GduLinuxMdDrive *ret;
GList *l;
+ g_assert (pool != NULL);
+
/* TODO: use lookaside hash table */
ret = NULL;
@@ -2693,6 +2722,8 @@ gdu_pool_get_presentable_by_id (GduPool *pool, const gchar *id)
GduPresentable *ret;
GList *l;
+ g_assert (pool != NULL);
+
/* TODO: use lookaside hash table */
ret = NULL;
@@ -2715,6 +2746,8 @@ gdu_pool_has_presentable (GduPool *pool, GduPresentable *presentable)
{
gboolean ret;
+ g_assert (pool != NULL);
+
ret = (g_list_find (pool->priv->presentables, presentable) != NULL);
return ret;
@@ -2728,6 +2761,8 @@ gdu_pool_get_hub_by_object_path (GduPool *pool, const gchar *object_path)
GduPresentable *ret;
GList *l;
+ g_assert (pool != NULL);
+
/* TODO: use lookaside hash table */
ret = NULL;
@@ -2793,6 +2828,8 @@ gdu_pool_op_linux_md_start (GduPool *pool,
LinuxMdStartData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxMdStartData, 1);
@@ -2849,6 +2886,8 @@ gdu_pool_op_linux_md_create (GduPool *pool,
LinuxMdCreateData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxMdCreateData, 1);
@@ -2894,6 +2933,8 @@ gdu_pool_op_linux_lvm2_vg_start (GduPool *pool,
LinuxLvm2VGStartData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxLvm2VGStartData, 1);
@@ -2937,6 +2978,8 @@ gdu_pool_op_linux_lvm2_vg_stop (GduPool *pool,
LinuxLvm2VGStopData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxLvm2VGStopData, 1);
@@ -2980,6 +3023,8 @@ gdu_pool_op_linux_lvm2_lv_start (GduPool *pool,
LinuxLvm2LVStartData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxLvm2LVStartData, 1);
@@ -3024,6 +3069,8 @@ gdu_pool_op_linux_lvm2_vg_set_name (GduPool *pool,
{
LinuxLvm2VGSetNameData *data;
+ g_assert (pool != NULL);
+
data = g_new0 (LinuxLvm2VGSetNameData, 1);
data->pool = g_object_ref (pool);
data->callback = callback;
@@ -3065,6 +3112,8 @@ gdu_pool_op_linux_lvm2_lv_set_name (GduPool *pool,
{
LinuxLvm2LVSetNameData *data;
+ g_assert (pool != NULL);
+
data = g_new0 (LinuxLvm2LVSetNameData, 1);
data->pool = g_object_ref (pool);
data->callback = callback;
@@ -3107,6 +3156,8 @@ gdu_pool_op_linux_lvm2_lv_remove (GduPool *pool,
LinuxLvm2LVRemoveData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxLvm2LVRemoveData, 1);
@@ -3164,6 +3215,8 @@ gdu_pool_op_linux_lvm2_lv_create (GduPool *pool,
char *fsoptions[16];
guint n;
+ g_assert (pool != NULL);
+
data = g_new0 (LinuxLvm2LVCreateData, 1);
data->pool = g_object_ref (pool);
data->callback = callback;
@@ -3227,6 +3280,8 @@ gdu_pool_op_linux_lvm2_vg_add_pv (GduPool *pool,
LinuxLvm2VGAddPVData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxLvm2VGAddPVData, 1);
@@ -3271,6 +3326,8 @@ gdu_pool_op_linux_lvm2_vg_remove_pv (GduPool *pool,
LinuxLvm2VGRemovePVData *data;
char *options[16];
+ g_assert (pool != NULL);
+
options[0] = NULL;
data = g_new0 (LinuxLvm2VGRemovePVData, 1);
@@ -3319,6 +3376,8 @@ gdu_pool_is_daemon_inhibited (GduPool *pool)
GError *error;
GValue value = {0};
+ g_assert (pool != NULL);
+
/* TODO: this is a currently a synchronous call; when we port to EggDBus this will be fixed */
ret = TRUE;
@@ -3366,6 +3425,8 @@ GList *
gdu_pool_get_known_filesystems (GduPool *pool)
{
GList *ret;
+ g_assert (pool != NULL);
+
ret = g_list_copy (pool->priv->known_filesystems);
g_list_foreach (ret, (GFunc) g_object_ref, NULL);
return ret;
@@ -3387,6 +3448,8 @@ gdu_pool_get_known_filesystem_by_id (GduPool *pool, const char *id)
{
GList *l;
GduKnownFilesystem *ret;
+ g_assert (pool != NULL);
+
ret = NULL;
for (l = pool->priv->known_filesystems; l != NULL; l = l->next) {
@@ -3412,18 +3475,21 @@ out:
gboolean
gdu_pool_supports_luks_devices (GduPool *pool)
{
+ g_assert (pool != NULL);
return pool->priv->supports_luks_devices;
}
const gchar *
gdu_pool_get_ssh_user_name (GduPool *pool)
{
+ g_assert (pool != NULL);
return pool->priv->ssh_user_name;
}
const gchar *
gdu_pool_get_ssh_address (GduPool *pool)
{
+ g_assert (pool != NULL);
return pool->priv->ssh_address;
}
@@ -3460,6 +3526,7 @@ remove_all_objects_and_dbus_proxies (GduPool *pool)
static void
_gdu_pool_disconnect (GduPool *pool)
{
+ g_assert (pool != NULL);
g_return_if_fail (!pool->priv->is_disconnected);
remove_all_objects_and_dbus_proxies (pool);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]