Return the created object as NULL if constructor failed.
authorshort <>
Wed, 18 Jun 2003 09:26:08 +0000 (09:26 +0000)
committershort <>
Wed, 18 Jun 2003 09:26:08 +0000 (09:26 +0000)
src/libcaptive/client/directory.c
src/libcaptive/client/file.c

index 7960091..f8c128b 100644 (file)
@@ -172,8 +172,10 @@ CaptiveDirectoryObject *captive_directory_object;
        captive_leave();
        if (r==GNOME_VFS_OK)
                captive_usecount(+1);
-       else
+       else {
                g_object_unref(captive_directory_object);
+               *captive_directory_object_return=NULL;
+               }
        return r;
 }
 
@@ -205,8 +207,10 @@ CaptiveDirectoryObject *captive_directory_object;
        captive_leave();
        if (r==GNOME_VFS_OK)
                captive_usecount(+1);
-       else
+       else {
                g_object_unref(captive_directory_object);
+               *captive_directory_object_return=NULL;
+               }
        return r;
 }
 
index 80df600..8ae9204 100644 (file)
@@ -179,8 +179,10 @@ CaptiveFileObject *captive_file_object;
        captive_leave();
        if (r==GNOME_VFS_OK)
                captive_usecount(+1);
-       else
+       else {
                g_object_unref(captive_file_object);
+               *captive_file_object_return=NULL;
+               }
        return r;
 }
 
@@ -214,8 +216,10 @@ CaptiveFileObject *captive_file_object;
        captive_leave();
        if (r==GNOME_VFS_OK)
                captive_usecount(+1);
-       else
+       else {
                g_object_unref(captive_file_object);
+               *captive_file_object_return=NULL;
+               }
        return r;
 }