From 58cf4e735cf60667a8838fe3dc72240ac78316ce Mon Sep 17 00:00:00 2001 From: Andrew Borodin Date: Sat, 24 Mar 2012 19:52:01 +0300 Subject: [PATCH] (vfs_path_element_clone): ret rid of extra actions. Signed-off-by: Andrew Borodin --- lib/vfs/path.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/vfs/path.c b/lib/vfs/path.c index 3d8036309..05fef55ce 100644 --- a/lib/vfs/path.c +++ b/lib/vfs/path.c @@ -838,17 +838,22 @@ vfs_path_get_by_index (const vfs_path_t * vpath, int element_index) vfs_path_element_t * vfs_path_element_clone (const vfs_path_element_t * element) { - vfs_path_element_t *new_element = g_new0 (vfs_path_element_t, 1); - memcpy (new_element, element, sizeof (vfs_path_element_t)); + vfs_path_element_t *new_element = g_new (vfs_path_element_t, 1); new_element->user = g_strdup (element->user); new_element->password = g_strdup (element->password); new_element->host = g_strdup (element->host); + new_element->ipv6 = element->ipv6; + new_element->port = element->port; new_element->path = g_strdup (element->path); + new_element->class = element->class; new_element->encoding = g_strdup (element->encoding); + new_element->vfs_prefix = g_strdup (element->vfs_prefix); if (vfs_path_element_need_cleanup_converter (element) && new_element->encoding != NULL) new_element->dir.converter = str_crt_conv_from (new_element->encoding); - new_element->vfs_prefix = g_strdup (element->vfs_prefix); + else + new_element->dir.converter = element->dir.converter; + new_element->dir.info = element->dir.info; return new_element; }