aboutsummaryrefslogtreecommitdiffstats
path: root/shell
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2001-05-04 23:56:34 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2001-05-04 23:56:34 +0800
commitb8fea86c9d93332692219c8a1ca39efe262658af (patch)
treed2f1ad2d37af287e93e8ec68dd85b53a5fa92bc8 /shell
parent562717e70a312939a8c9e828f587cb2f1e4a3b24 (diff)
downloadgsoc2013-evolution-b8fea86c9d93332692219c8a1ca39efe262658af.tar
gsoc2013-evolution-b8fea86c9d93332692219c8a1ca39efe262658af.tar.gz
gsoc2013-evolution-b8fea86c9d93332692219c8a1ca39efe262658af.tar.bz2
gsoc2013-evolution-b8fea86c9d93332692219c8a1ca39efe262658af.tar.lz
gsoc2013-evolution-b8fea86c9d93332692219c8a1ca39efe262658af.tar.xz
gsoc2013-evolution-b8fea86c9d93332692219c8a1ca39efe262658af.tar.zst
gsoc2013-evolution-b8fea86c9d93332692219c8a1ca39efe262658af.zip
Plug more leaks.
svn path=/trunk/; revision=9671
Diffstat (limited to 'shell')
-rw-r--r--shell/ChangeLog13
-rw-r--r--shell/e-local-storage.c5
-rw-r--r--shell/evolution-shell-component-client.c6
-rw-r--r--shell/evolution-storage.c2
4 files changed, 24 insertions, 2 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index a692d61829..cd557caca8 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,5 +1,18 @@
2001-05-04 Ettore Perazzoli <ettore@ximian.com>
+ * evolution-storage.c (evolution_storage_new_folder): Free the
+ `corba_folder' when not needed anymore.
+
+ * e-local-storage.c (create_folder_directory): Free the parent
+ path, and don't allocate it when we don't need it.
+
+ * evolution-shell-component-client.c (dispatch_callback): Free the
+ listener servant too.
+ (impl_destroy): Release the listener object and free the servant
+ if it exists.
+
+2001-05-04 Ettore Perazzoli <ettore@ximian.com>
+
* e-shell-folder-creation-dialog.c (dialog_clicked_cb): Don't
strdup `path' before copying it into the `dialog_data'.
diff --git a/shell/e-local-storage.c b/shell/e-local-storage.c
index 3a2960b4e9..d0d433abc0 100644
--- a/shell/e-local-storage.c
+++ b/shell/e-local-storage.c
@@ -426,7 +426,6 @@ create_folder_directory (ELocalStorage *local_storage,
ELocalStoragePrivate *priv;
const char *folder_name;
char *physical_path;
- char *parent_path;
storage = E_STORAGE (local_storage);
priv = local_storage->priv;
@@ -440,15 +439,17 @@ create_folder_directory (ELocalStorage *local_storage,
/* We want a direct child of the root, so we don't need to create a
`subfolders' directory. */
physical_path = get_physical_path (local_storage, path);
- parent_path = g_strdup (G_DIR_SEPARATOR_S);
} else {
char *parent_physical_path;
char *subfolders_directory_physical_path;
+ char *parent_path;
/* Create the `subfolders' subdirectory under the parent. */
parent_path = g_strndup (path, folder_name - path - 1);
parent_physical_path = get_physical_path (local_storage, parent_path);
+ g_free (parent_path);
+
subfolders_directory_physical_path = g_concat_dir_and_file (parent_physical_path,
SUBFOLDER_DIR_NAME);
diff --git a/shell/evolution-shell-component-client.c b/shell/evolution-shell-component-client.c
index 2163813575..8a9f0ea67c 100644
--- a/shell/evolution-shell-component-client.c
+++ b/shell/evolution-shell-component-client.c
@@ -116,6 +116,7 @@ dispatch_callback (EvolutionShellComponentClient *shell_component_client,
CORBA_free (oid);
CORBA_Object_release (priv->listener_interface, &ev);
+ free_ShellComponentListener_servant (priv->listener_servant);
CORBA_exception_free (&ev);
@@ -301,6 +302,11 @@ impl_destroy (GtkObject *object)
CORBA_Object_release (priv->offline_interface, &ev);
}
+ if (priv->listener_interface != CORBA_OBJECT_NIL) {
+ CORBA_Object_release (priv->listener_interface, &ev);
+ free_ShellComponentListener_servant (priv->listener_servant);
+ }
+
CORBA_exception_free (&ev);
g_free (priv);
diff --git a/shell/evolution-storage.c b/shell/evolution-storage.c
index 68cbf0c7f3..48fdae5fc5 100644
--- a/shell/evolution-storage.c
+++ b/shell/evolution-storage.c
@@ -731,6 +731,8 @@ evolution_storage_new_folder (EvolutionStorage *evolution_storage,
break;
}
+ CORBA_free (corba_folder);
+
CORBA_exception_free (&ev);
return result;