diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | eel/eel-string.c | 112 | ||||
-rw-r--r-- | eel/eel-string.h | 10 | ||||
-rw-r--r-- | libcaja-private/caja-desktop-icon-file.c | 6 | ||||
-rw-r--r-- | libcaja-private/caja-directory.c | 4 | ||||
-rw-r--r-- | libcaja-private/caja-file-private.h | 16 | ||||
-rw-r--r-- | libcaja-private/caja-file.c | 160 | ||||
-rw-r--r-- | libcaja-private/caja-search-directory-file.c | 2 |
8 files changed, 94 insertions, 218 deletions
diff --git a/configure.ac b/configure.ac index 156027ca..033a6202 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ AC_PREREQ(2.54) dnl =========================================================================== -m4_define(glib_minver, 2.50.0) +m4_define(glib_minver, 2.58.1) m4_define(gio_minver, 2.50.0) m4_define(mate_desktop_minver, 1.17.3) m4_define(pango_minver, 1.1.2) diff --git a/eel/eel-string.c b/eel/eel-string.c index aea801ea..c44706c1 100644 --- a/eel/eel-string.c +++ b/eel/eel-string.c @@ -746,118 +746,6 @@ eel_strdup_printf_with_custom (EelPrintfHandler *handlers, return res; } -/*********** refcounted strings ****************/ - -G_LOCK_DEFINE_STATIC (unique_ref_strs); -static GHashTable *unique_ref_strs = NULL; - -static eel_ref_str -eel_ref_str_new_internal (const char *string, int start_count) -{ - char *res; - volatile gint *count; - gsize len; - - len = strlen (string); - res = g_malloc (sizeof (gint) + len + 1); - count = (volatile gint *)res; - *count = start_count; - res += sizeof(gint); - memcpy (res, string, len + 1); - return res; -} - -eel_ref_str -eel_ref_str_new (const char *string) -{ - if (string == NULL) - { - return NULL; - } - - return eel_ref_str_new_internal (string, 1); -} - -eel_ref_str -eel_ref_str_get_unique (const char *string) -{ - eel_ref_str res; - - if (string == NULL) - { - return NULL; - } - - G_LOCK (unique_ref_strs); - if (unique_ref_strs == NULL) - { - unique_ref_strs = - g_hash_table_new(g_str_hash, g_str_equal); - } - - res = g_hash_table_lookup (unique_ref_strs, string); - if (res != NULL) - { - eel_ref_str_ref (res); - } - else - { - res = eel_ref_str_new_internal (string, 0x80000001); - g_hash_table_insert (unique_ref_strs, res, res); - } - - G_UNLOCK (unique_ref_strs); - - return res; -} - -eel_ref_str -eel_ref_str_ref (eel_ref_str str) -{ - volatile gint *count; - - count = (volatile gint *)((char *)str - sizeof (gint)); - g_atomic_int_add (count, 1); - - return str; -} - -void -eel_ref_str_unref (eel_ref_str str) -{ - volatile gint *count; - gint old_ref; - - if (str == NULL) - return; - - count = (volatile gint *)((char *)str - sizeof (gint)); - -retry_atomic_decrement: - old_ref = g_atomic_int_get (count); - if (old_ref == 1) - { - g_free ((char *)count); - } - else if (old_ref == 0x80000001) - { - G_LOCK (unique_ref_strs); - /* Need to recheck after taking lock to avoid races with _get_unique() */ - if (g_atomic_int_add (count, -1) == 0x80000001) - { - g_hash_table_remove (unique_ref_strs, (char *)str); - g_free ((char *)count); - } - G_UNLOCK (unique_ref_strs); - } - else if (!g_atomic_int_compare_and_exchange (count, - old_ref, old_ref - 1)) - { - goto retry_atomic_decrement; - } -} - - #if !defined (EEL_OMIT_SELF_CHECK) static void diff --git a/eel/eel-string.h b/eel/eel-string.h index 929d11a2..27c829e8 100644 --- a/eel/eel-string.h +++ b/eel/eel-string.h @@ -79,16 +79,6 @@ char * eel_str_replace_substring (const char *str, const char *substring, const char *replacement); -typedef char * eel_ref_str; - -eel_ref_str eel_ref_str_new (const char *string); -eel_ref_str eel_ref_str_get_unique (const char *string); -eel_ref_str eel_ref_str_ref (eel_ref_str str); -void eel_ref_str_unref (eel_ref_str str); - -#define eel_ref_str_peek(__str) ((const char *)(__str)) - - typedef struct { char character; diff --git a/libcaja-private/caja-desktop-icon-file.c b/libcaja-private/caja-desktop-icon-file.c index a91b926d..2ee911ab 100644 --- a/libcaja-private/caja-desktop-icon-file.c +++ b/libcaja-private/caja-desktop-icon-file.c @@ -186,8 +186,8 @@ update_info_from_link (CajaDesktopIconFile *icon_file) return; } - eel_ref_str_unref (file->details->mime_type); - file->details->mime_type = eel_ref_str_get_unique ("application/x-caja-link"); + g_clear_pointer (&file->details->mime_type, g_ref_string_release); + file->details->mime_type = g_ref_string_new_intern ("application/x-caja-link"); file->details->type = G_FILE_TYPE_SHORTCUT; file->details->size = 0; file->details->has_permissions = FALSE; @@ -293,7 +293,7 @@ caja_desktop_icon_file_new (CajaDesktopLink *link) icon_file->details->link = link; name = caja_desktop_link_get_file_name (link); - file->details->name = eel_ref_str_new (name); + file->details->name = g_ref_string_new (name); g_free (name); update_info_from_link (icon_file); diff --git a/libcaja-private/caja-directory.c b/libcaja-private/caja-directory.c index d9d66c2d..f9dc639a 100644 --- a/libcaja-private/caja-directory.c +++ b/libcaja-private/caja-directory.c @@ -527,7 +527,7 @@ add_to_hash_table (CajaDirectory *directory, CajaFile *file, GList *node) { const char *name; - name = eel_ref_str_peek (file->details->name); + name = file->details->name; g_assert (node != NULL); g_assert (g_hash_table_lookup (directory->details->file_hash, @@ -541,7 +541,7 @@ extract_from_hash_table (CajaDirectory *directory, CajaFile *file) const char *name; GList *node; - name = eel_ref_str_peek (file->details->name); + name = file->details->name; if (name == NULL) { return NULL; diff --git a/libcaja-private/caja-file-private.h b/libcaja-private/caja-file-private.h index f5e77be7..053f62a0 100644 --- a/libcaja-private/caja-file-private.h +++ b/libcaja-private/caja-file-private.h @@ -62,14 +62,14 @@ struct _CajaFilePrivate { CajaDirectory *directory; - eel_ref_str name; + GRefString *name; /* File info: */ GFileType type; - eel_ref_str display_name; + GRefString *display_name; char *display_name_collation_key; - eel_ref_str edit_name; + GRefString *edit_name; goffset size; /* -1 is unknown */ goffset size_on_disk; /* -1 is unknown */ @@ -80,9 +80,9 @@ struct _CajaFilePrivate int uid; /* -1 is none */ int gid; /* -1 is none */ - eel_ref_str owner; - eel_ref_str owner_real; - eel_ref_str group; + GRefString *owner; + GRefString *owner_real; + GRefString *group; time_t atime; /* 0 is unknown */ time_t mtime; /* 0 is unknown */ @@ -90,7 +90,7 @@ struct _CajaFilePrivate char *symlink_name; - eel_ref_str mime_type; + GRefString *mime_type; char *selinux_context; char *description; @@ -121,7 +121,7 @@ struct _CajaFilePrivate /* used during DND, for checking whether source and destination are on * the same file system. */ - eel_ref_str filesystem_id; + GRefString *filesystem_id; char *trash_orig_path; diff --git a/libcaja-private/caja-file.c b/libcaja-private/caja-file.c index 1fcf00fb..a7e0e8d8 100644 --- a/libcaja-private/caja-file.c +++ b/libcaja-private/caja-file.c @@ -235,29 +235,29 @@ caja_file_set_display_name (CajaFile *file, changed = FALSE; - if (eel_strcmp (eel_ref_str_peek (file->details->display_name), display_name) != 0) { + if (eel_strcmp (file->details->display_name, display_name) != 0) { changed = TRUE; - eel_ref_str_unref (file->details->display_name); + g_clear_pointer (&file->details->display_name, g_ref_string_release); - if (eel_strcmp (eel_ref_str_peek (file->details->name), display_name) == 0) { - file->details->display_name = eel_ref_str_ref (file->details->name); + if (eel_strcmp (file->details->name, display_name) == 0) { + file->details->display_name = g_ref_string_acquire (file->details->name); } else { - file->details->display_name = eel_ref_str_new (display_name); + file->details->display_name = g_ref_string_new (display_name); } g_free (file->details->display_name_collation_key); file->details->display_name_collation_key = g_utf8_collate_key_for_filename (display_name, -1); } - if (eel_strcmp (eel_ref_str_peek (file->details->edit_name), edit_name) != 0) { + if (eel_strcmp (file->details->edit_name, edit_name) != 0) { changed = TRUE; - eel_ref_str_unref (file->details->edit_name); - if (eel_strcmp (eel_ref_str_peek (file->details->display_name), edit_name) == 0) { - file->details->edit_name = eel_ref_str_ref (file->details->display_name); + g_clear_pointer (&file->details->edit_name, g_ref_string_release); + if (eel_strcmp (file->details->display_name, edit_name) == 0) { + file->details->edit_name = g_ref_string_acquire (file->details->display_name); } else { - file->details->edit_name = eel_ref_str_new (edit_name); + file->details->edit_name = g_ref_string_new (edit_name); } } @@ -268,11 +268,11 @@ caja_file_set_display_name (CajaFile *file, static void caja_file_clear_display_name (CajaFile *file) { - eel_ref_str_unref (file->details->display_name); + g_clear_pointer (&file->details->display_name, g_ref_string_release); file->details->display_name = NULL; g_free (file->details->display_name_collation_key); file->details->display_name_collation_key = NULL; - eel_ref_str_unref (file->details->edit_name); + g_clear_pointer (&file->details->edit_name, g_ref_string_release); file->details->edit_name = NULL; } @@ -485,20 +485,20 @@ caja_file_clear_info (CajaFile *file) file->details->trash_time = 0; g_free (file->details->symlink_name); file->details->symlink_name = NULL; - eel_ref_str_unref (file->details->mime_type); + g_clear_pointer (&file->details->mime_type, g_ref_string_release); file->details->mime_type = NULL; g_free (file->details->selinux_context); file->details->selinux_context = NULL; g_free (file->details->description); file->details->description = NULL; - eel_ref_str_unref (file->details->owner); + g_clear_pointer (&file->details->owner, g_ref_string_release); file->details->owner = NULL; - eel_ref_str_unref (file->details->owner_real); + g_clear_pointer (&file->details->owner_real, g_ref_string_release); file->details->owner_real = NULL; - eel_ref_str_unref (file->details->group); + g_clear_pointer (&file->details->group, g_ref_string_release); file->details->group = NULL; - eel_ref_str_unref (file->details->filesystem_id); + g_clear_pointer (&file->details->filesystem_id, g_ref_string_release); file->details->filesystem_id = NULL; clear_metadata (file); @@ -539,7 +539,7 @@ caja_file_new_from_filename (CajaDirectory *directory, file->details->directory = caja_directory_ref (directory); - file->details->name = eel_ref_str_new (filename); + file->details->name = g_ref_string_new (filename); #ifdef CAJA_FILE_DEBUG_REF DEBUG_REF_PRINTF("%10p ref'd", file); @@ -798,19 +798,19 @@ finalize (GObject *object) } caja_directory_unref (directory); - eel_ref_str_unref (file->details->name); - eel_ref_str_unref (file->details->display_name); + g_clear_pointer (&file->details->name, g_ref_string_release); + g_clear_pointer (&file->details->display_name, g_ref_string_release); g_free (file->details->display_name_collation_key); - eel_ref_str_unref (file->details->edit_name); + g_clear_pointer (&file->details->edit_name, g_ref_string_release); if (file->details->icon) { g_object_unref (file->details->icon); } g_free (file->details->thumbnail_path); g_free (file->details->symlink_name); - eel_ref_str_unref (file->details->mime_type); - eel_ref_str_unref (file->details->owner); - eel_ref_str_unref (file->details->owner_real); - eel_ref_str_unref (file->details->group); + g_clear_pointer (&file->details->mime_type, g_ref_string_release); + g_clear_pointer (&file->details->owner, g_ref_string_release); + g_clear_pointer (&file->details->owner_real, g_ref_string_release); + g_clear_pointer (&file->details->group, g_ref_string_release); g_free (file->details->selinux_context); g_free (file->details->description); g_free (file->details->top_left_text); @@ -826,7 +826,7 @@ finalize (GObject *object) g_object_unref (file->details->mount); } - eel_ref_str_unref (file->details->filesystem_id); + g_clear_pointer (&file->details->filesystem_id, g_ref_string_release); g_list_free_full (file->details->mime_list, g_free); g_list_free_full (file->details->pending_extension_emblems, g_free); @@ -1469,7 +1469,7 @@ caja_file_is_desktop_directory (CajaFile *file) return FALSE; } - return caja_is_desktop_directory_file (dir, eel_ref_str_peek (file->details->name)); + return caja_is_desktop_directory_file (dir, file->details->name); } static gboolean @@ -1594,7 +1594,7 @@ caja_file_get_location (CajaFile *file) return g_object_ref (dir); } - return g_file_get_child (dir, eel_ref_str_peek (file->details->name)); + return g_file_get_child (dir, file->details->name); } /* Return the actual uri associated with the passed-in file. */ @@ -1731,7 +1731,7 @@ rename_get_info_callback (GObject *source_object, } old_uri = caja_file_get_uri (op->file); - old_name = g_strdup (eel_ref_str_peek (op->file->details->name)); + old_name = g_strdup (op->file->details->name); update_info_and_name (op->file, new_info); @@ -1795,7 +1795,7 @@ static gboolean name_is (CajaFile *file, const char *new_name) { const char *old_name; - old_name = eel_ref_str_peek (file->details->name); + old_name = file->details->name; return strcmp (new_name, old_name) == 0; } @@ -2351,22 +2351,22 @@ update_info_internal (CajaFile *file, file->details->uid = uid; file->details->gid = gid; - if (eel_strcmp (eel_ref_str_peek (file->details->owner), owner) != 0) { + if (eel_strcmp (file->details->owner, owner) != 0) { changed = TRUE; - eel_ref_str_unref (file->details->owner); - file->details->owner = eel_ref_str_get_unique (owner); + g_clear_pointer (&file->details->owner, g_ref_string_release); + file->details->owner = g_ref_string_new_intern (owner); } - if (eel_strcmp (eel_ref_str_peek (file->details->owner_real), owner_real) != 0) { + if (eel_strcmp (file->details->owner_real, owner_real) != 0) { changed = TRUE; - eel_ref_str_unref (file->details->owner_real); - file->details->owner_real = eel_ref_str_get_unique (owner_real); + g_clear_pointer (&file->details->owner_real, g_ref_string_release); + file->details->owner_real = g_ref_string_new_intern (owner_real); } - if (eel_strcmp (eel_ref_str_peek (file->details->group), group) != 0) { + if (eel_strcmp (file->details->group, group) != 0) { changed = TRUE; - eel_ref_str_unref (file->details->group); - file->details->group = eel_ref_str_get_unique (group); + g_clear_pointer (&file->details->group, g_ref_string_release); + file->details->group = g_ref_string_new_intern (group); } if (free_owner) { @@ -2454,10 +2454,10 @@ update_info_internal (CajaFile *file, } mime_type = g_file_info_get_content_type (info); - if (eel_strcmp (eel_ref_str_peek (file->details->mime_type), mime_type) != 0) { + if (eel_strcmp (file->details->mime_type, mime_type) != 0) { changed = TRUE; - eel_ref_str_unref (file->details->mime_type); - file->details->mime_type = eel_ref_str_get_unique (mime_type); + g_clear_pointer (&file->details->mime_type, g_ref_string_release); + file->details->mime_type = g_ref_string_new_intern (mime_type); } selinux_context = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_SELINUX_CONTEXT); @@ -2475,10 +2475,10 @@ update_info_internal (CajaFile *file, } filesystem_id = g_file_info_get_attribute_string (info, G_FILE_ATTRIBUTE_ID_FILESYSTEM); - if (eel_strcmp (eel_ref_str_peek (file->details->filesystem_id), filesystem_id) != 0) { + if (eel_strcmp (file->details->filesystem_id, filesystem_id) != 0) { changed = TRUE; - eel_ref_str_unref (file->details->filesystem_id); - file->details->filesystem_id = eel_ref_str_get_unique (filesystem_id); + g_clear_pointer (&file->details->filesystem_id, g_ref_string_release); + file->details->filesystem_id = g_ref_string_new_intern (filesystem_id); } trash_time = 0; @@ -2505,18 +2505,17 @@ update_info_internal (CajaFile *file, if (update_name) { name = g_file_info_get_name (info); if (file->details->name == NULL || - strcmp (eel_ref_str_peek (file->details->name), name) != 0) { + strcmp (file->details->name, name) != 0) { changed = TRUE; node = caja_directory_begin_file_name_change (file->details->directory, file); - eel_ref_str_unref (file->details->name); - if (eel_strcmp (eel_ref_str_peek (file->details->display_name), - name) == 0) { - file->details->name = eel_ref_str_ref (file->details->display_name); + g_clear_pointer (&file->details->name, g_ref_string_release); + if (eel_strcmp (file->details->display_name, name) == 0) { + file->details->name = g_ref_string_acquire (file->details->display_name); } else { - file->details->name = eel_ref_str_new (name); + file->details->name = g_ref_string_new (name); } if (!file->details->got_custom_display_name && @@ -2597,8 +2596,8 @@ update_name_internal (CajaFile *file, (file->details->directory, file); } - eel_ref_str_unref (file->details->name); - file->details->name = eel_ref_str_new (name); + g_clear_pointer (&file->details->name, g_ref_string_release); + file->details->name = g_ref_string_new (name); if (!file->details->got_custom_display_name) { caja_file_clear_display_name (file); @@ -3118,8 +3117,8 @@ compare_by_type (CajaFile *file_1, CajaFile *file_2) if (file_1->details->mime_type != NULL && file_2->details->mime_type != NULL && - strcmp (eel_ref_str_peek (file_1->details->mime_type), - eel_ref_str_peek (file_2->details->mime_type)) == 0) { + strcmp (file_1->details->mime_type, + file_2->details->mime_type) == 0) { return 0; } @@ -3690,8 +3689,7 @@ caja_file_is_home (CajaFile *file) return FALSE; } - return caja_is_home_directory_file (dir, - eel_ref_str_peek (file->details->name)); + return caja_is_home_directory_file (dir, file->details->name); } gboolean @@ -4050,7 +4048,7 @@ caja_file_peek_display_name (CajaFile *file) /* Default to display name based on filename if its not set yet */ if (file->details->display_name == NULL) { - name = eel_ref_str_peek (file->details->name); + name = file->details->name; if (g_utf8_validate (name, -1, NULL)) { caja_file_set_display_name (file, name, @@ -4066,7 +4064,7 @@ caja_file_peek_display_name (CajaFile *file) } } - return eel_ref_str_peek (file->details->display_name); + return file->details->display_name; } char * @@ -4080,7 +4078,7 @@ caja_file_get_edit_name (CajaFile *file) { const char *res; - res = eel_ref_str_peek (file->details->edit_name); + res = file->details->edit_name; if (res == NULL) res = ""; @@ -4090,7 +4088,7 @@ caja_file_get_edit_name (CajaFile *file) char * caja_file_get_name (CajaFile *file) { - return g_strdup (eel_ref_str_peek (file->details->name)); + return g_strdup (file->details->name); } /** @@ -4329,7 +4327,7 @@ caja_file_should_show_thumbnail (CajaFile *file) use_preview = caja_file_get_filesystem_use_preview (file); - mime_type = eel_ref_str_peek (file->details->mime_type); + mime_type = file->details->mime_type; if (mime_type == NULL) { mime_type = "application/octet-stream"; } @@ -4590,7 +4588,7 @@ caja_file_get_icon (CajaFile *file, /* Render frames only for thumbnails of non-image files and for images with no alpha channel. */ gboolean is_image = file->details->mime_type && - (strncmp(eel_ref_str_peek (file->details->mime_type), "image/", 6) == 0); + (strncmp (file->details->mime_type, "image/", 6) == 0); if (!is_image || is_image && !gdk_pixbuf_get_has_alpha (raw_pixbuf)) { caja_ui_frame_image (&scaled_pixbuf); @@ -5028,7 +5026,7 @@ caja_file_should_show_directory_item_count (CajaFile *file) g_return_val_if_fail (CAJA_IS_FILE (file), FALSE); if (file->details->mime_type && - strcmp (eel_ref_str_peek (file->details->mime_type), "x-directory/smb-share") == 0) { + strcmp (file->details->mime_type, "x-directory/smb-share") == 0) { return FALSE; } @@ -5841,7 +5839,7 @@ caja_file_can_get_group (CajaFile *file) char * caja_file_get_group_name (CajaFile *file) { - return g_strdup (eel_ref_str_peek (file->details->group)); + return g_strdup (file->details->group); } /** @@ -6151,16 +6149,16 @@ caja_file_get_owner_as_string (CajaFile *file, gboolean include_real_name) } if (file->details->owner_real == NULL) { - user_name = g_strdup (eel_ref_str_peek (file->details->owner)); + user_name = g_strdup (file->details->owner); } else if (file->details->owner == NULL) { - user_name = g_strdup (eel_ref_str_peek (file->details->owner_real)); + user_name = g_strdup (file->details->owner_real); } else if (include_real_name && - strcmp (eel_ref_str_peek (file->details->owner), eel_ref_str_peek (file->details->owner_real)) != 0) { + strcmp (file->details->owner, file->details->owner_real) != 0) { user_name = g_strdup_printf ("%s - %s", - eel_ref_str_peek (file->details->owner), - eel_ref_str_peek (file->details->owner_real)); + file->details->owner, + file->details->owner_real); } else { - user_name = g_strdup (eel_ref_str_peek (file->details->owner)); + user_name = g_strdup (file->details->owner); } return user_name; @@ -6721,7 +6719,7 @@ get_description (CajaFile *file) g_assert (CAJA_IS_FILE (file)); - mime_type = eel_ref_str_peek (file->details->mime_type); + mime_type = file->details->mime_type; if (eel_str_is_empty (mime_type)) { return NULL; } @@ -6810,7 +6808,7 @@ caja_file_get_mime_type (CajaFile *file) if (file != NULL) { g_return_val_if_fail (CAJA_IS_FILE (file), NULL); if (file->details->mime_type != NULL) { - return g_strdup (eel_ref_str_peek (file->details->mime_type)); + return g_strdup (file->details->mime_type); } } return g_strdup ("application/octet-stream"); @@ -6837,7 +6835,7 @@ caja_file_is_mime_type (CajaFile *file, const char *mime_type) if (file->details->mime_type == NULL) { return FALSE; } - return g_content_type_is_a (eel_ref_str_peek (file->details->mime_type), + return g_content_type_is_a (file->details->mime_type, mime_type); } @@ -6849,7 +6847,7 @@ caja_file_is_launchable (CajaFile *file) type_can_be_executable = FALSE; if (file->details->mime_type != NULL) { type_can_be_executable = - g_content_type_can_be_executable (eel_ref_str_peek (file->details->mime_type)); + g_content_type_can_be_executable (file->details->mime_type); } return type_can_be_executable && @@ -7313,12 +7311,12 @@ caja_file_get_symbolic_link_target_uri (CajaFile *file) gboolean caja_file_is_caja_link (CajaFile *file) { - if (file->details->mime_type == NULL) { + if (file->details->mime_type == NULL) + { return FALSE; - } - return g_content_type_equals (eel_ref_str_peek (file->details->mime_type), - "application/x-desktop"); - + } + return g_content_type_equals (file->details->mime_type, + "application/x-desktop"); } /** @@ -7592,7 +7590,7 @@ caja_file_get_top_left_text (CajaFile *file) char * caja_file_get_filesystem_id (CajaFile *file) { - return g_strdup (eel_ref_str_peek (file->details->filesystem_id)); + return g_strdup (file->details->filesystem_id); } CajaFile * diff --git a/libcaja-private/caja-search-directory-file.c b/libcaja-private/caja-search-directory-file.c index ec6d5788..bf13bb7e 100644 --- a/libcaja-private/caja-search-directory-file.c +++ b/libcaja-private/caja-search-directory-file.c @@ -220,7 +220,7 @@ caja_search_directory_file_init (CajaSearchDirectoryFile *search_file) file = CAJA_FILE (search_file); file->details->got_file_info = TRUE; - file->details->mime_type = eel_ref_str_get_unique ("x-directory/normal"); + file->details->mime_type = g_ref_string_new_intern ("x-directory/normal"); file->details->type = G_FILE_TYPE_DIRECTORY; file->details->size = 0; |