From b8fea86c9d93332692219c8a1ca39efe262658af Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Fri, 4 May 2001 15:56:34 +0000 Subject: Plug more leaks. svn path=/trunk/; revision=9671 --- shell/ChangeLog | 13 +++++++++++++ shell/e-local-storage.c | 5 +++-- shell/evolution-shell-component-client.c | 6 ++++++ shell/evolution-storage.c | 2 ++ 4 files changed, 24 insertions(+), 2 deletions(-) (limited to 'shell') diff --git a/shell/ChangeLog b/shell/ChangeLog index a692d61829..cd557caca8 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,3 +1,16 @@ +2001-05-04 Ettore Perazzoli + + * 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 * e-shell-folder-creation-dialog.c (dialog_clicked_cb): Don't 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; -- cgit v1.2.3