aboutsummaryrefslogtreecommitdiffstats
path: root/shell/evolution-storage.c
diff options
context:
space:
mode:
authorRodrigo Moya <rodrigo@ximian.com>2002-07-16 03:22:36 +0800
committerRodrigo Moya <rodrigo@src.gnome.org>2002-07-16 03:22:36 +0800
commita0e89c35a5bcaafdd6aa3a4faf1563fbc92a9447 (patch)
tree061a155a62bb0768bbef54f9906a9a1bc56e384c /shell/evolution-storage.c
parentac9cea6dde28ef3b597d19a4f2b1a06f42b15d8a (diff)
downloadgsoc2013-evolution-a0e89c35a5bcaafdd6aa3a4faf1563fbc92a9447.tar.gz
gsoc2013-evolution-a0e89c35a5bcaafdd6aa3a4faf1563fbc92a9447.tar.zst
gsoc2013-evolution-a0e89c35a5bcaafdd6aa3a4faf1563fbc92a9447.zip
no need to convert the value returned by e_folder_tree_get_folder to a
2002-07-14 Rodrigo Moya <rodrigo@ximian.com> * evolution-storage.c (impl_Storage_getFolderAtPath): no need to convert the value returned by e_folder_tree_get_folder to a GNOME_Evolution_Folder, since it already is, and duplicate it before returning. svn path=/trunk/; revision=17461
Diffstat (limited to 'shell/evolution-storage.c')
-rw-r--r--shell/evolution-storage.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/shell/evolution-storage.c b/shell/evolution-storage.c
index b3ea8089bb..b8468790e0 100644
--- a/shell/evolution-storage.c
+++ b/shell/evolution-storage.c
@@ -280,23 +280,32 @@ impl_Storage_getFolderAtPath (PortableServer_Servant servant,
BonoboObject *bonobo_object;
EvolutionStorage *storage;
EvolutionStoragePrivate *priv;
- EFolder *folder;
GNOME_Evolution_Folder *corba_folder;
+ GNOME_Evolution_Folder *return_value;
bonobo_object = bonobo_object_from_servant (servant);
storage = EVOLUTION_STORAGE (bonobo_object);
priv = storage->priv;
- folder = e_folder_tree_get_folder (priv->folder_tree, path);
- if (folder == NULL) {
+ corba_folder = e_folder_tree_get_folder (priv->folder_tree, path);
+ if (corba_folder == NULL) {
CORBA_exception_set (ev, CORBA_USER_EXCEPTION, ex_GNOME_Evolution_Storage_NotFound, NULL);
return NULL;
}
- corba_folder = GNOME_Evolution_Folder__alloc ();
- e_folder_to_corba (folder, "", corba_folder);
-
- return corba_folder;
+ /* duplicate CORBA structure */
+ return_value = GNOME_Evolution_Folder__alloc ();
+ return_value->type = CORBA_string_dup (corba_folder->type);
+ return_value->description = CORBA_string_dup (corba_folder->description);
+ return_value->displayName = CORBA_string_dup (corba_folder->displayName);
+ return_value->physicalUri = CORBA_string_dup (corba_folder->physicalUri);
+ return_value->evolutionUri = CORBA_string_dup (corba_folder->evolutionUri);
+ return_value->customIconName = CORBA_string_dup (corba_folder->customIconName);
+ return_value->unreadCount = corba_folder->unreadCount;
+ return_value->canSyncOffline = corba_folder->canSyncOffline;
+ return_value->sortingPriority = corba_folder->sortingPriority;
+
+ return return_value;
}
static void