[gtk: 3/5] GtkIconCache: Remove unused code
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk: 3/5] GtkIconCache: Remove unused code
- Date: Tue, 4 Feb 2020 10:54:38 +0000 (UTC)
commit 308d434b579f95204a215615f00a802c9c7d9dba
Author: Alexander Larsson <alexl redhat com>
Date: Mon Feb 3 11:01:48 2020 +0100
GtkIconCache: Remove unused code
We're not really using the icon theme cache much anymore, as the
individual per-directory hashes are no longer used, so delete all the
unused code.
gtk/gtkiconcache.c | 357 ++--------------------------------------------
gtk/gtkiconcacheprivate.h | 20 ---
2 files changed, 10 insertions(+), 367 deletions(-)
---
diff --git a/gtk/gtkiconcache.c b/gtk/gtkiconcache.c
index bc238e0028..8e4b86d6eb 100644
--- a/gtk/gtkiconcache.c
+++ b/gtk/gtkiconcache.c
@@ -82,7 +82,7 @@ gtk_icon_cache_unref (GtkIconCache *cache)
GTK_NOTE (ICONTHEME, g_message ("unmapping icon cache"));
if (cache->map)
- g_mapped_file_unref (cache->map);
+ g_mapped_file_unref (cache->map);
g_free (cache);
}
}
@@ -119,7 +119,7 @@ gtk_icon_cache_new_for_path (const gchar *path)
/* (will need to check on the Windows DDK part later) */
#if ((defined (_MSC_VER) && (_MSC_VER >= 1400 || __MSVCRT_VERSION__ >= 0x0800)) || defined
(__MINGW64_VERSION_MAJOR)) && !defined(_WIN64)
#undef fstat /* Just in case */
-#define fstat _fstat32
+#define fstat _fstat32
#endif
#endif
@@ -130,7 +130,7 @@ gtk_icon_cache_new_for_path (const gchar *path)
if (st.st_mtime < path_st.st_mtime)
{
GTK_NOTE (ICONTHEME, g_message ("icon cache outdated"));
- goto done;
+ goto done;
}
map = g_mapped_file_new (cache_filename, FALSE, NULL);
@@ -156,7 +156,7 @@ gtk_icon_cache_new_for_path (const gchar *path)
goto done;
}
}
-#endif
+#endif
GTK_NOTE (ICONTHEME, g_message ("found icon cache for %s", path));
@@ -166,7 +166,7 @@ gtk_icon_cache_new_for_path (const gchar *path)
cache->buffer = g_mapped_file_get_contents (map);
done:
- g_free (cache_filename);
+ g_free (cache_filename);
if (fd >= 0)
close (fd);
@@ -182,18 +182,18 @@ gtk_icon_cache_new (const gchar *data)
cache->ref_count = 1;
cache->map = NULL;
cache->buffer = (gchar *)data;
-
+
return cache;
}
static gint
get_directory_index (GtkIconCache *cache,
- const gchar *directory)
+ const gchar *directory)
{
guint32 dir_list_offset;
gint n_dirs;
gint i;
-
+
dir_list_offset = GET_UINT32 (cache->buffer, 8);
n_dirs = GET_UINT32 (cache->buffer, dir_list_offset);
@@ -203,147 +203,10 @@ get_directory_index (GtkIconCache *cache,
guint32 name_offset = GET_UINT32 (cache->buffer, dir_list_offset + 4 + 4 * i);
gchar *name = cache->buffer + name_offset;
if (strcmp (name, directory) == 0)
- return i;
- }
-
- return -1;
-}
-
-gint
-gtk_icon_cache_get_directory_index (GtkIconCache *cache,
- const gchar *directory)
-{
- return get_directory_index (cache, directory);
-}
-
-static guint
-icon_name_hash (gconstpointer key)
-{
- const signed char *p = key;
- guint32 h = *p;
-
- if (h)
- for (p += 1; *p != '\0'; p++)
- h = (h << 5) - h + *p;
-
- return h;
-}
-
-static gint
-find_image_offset (GtkIconCache *cache,
- const gchar *icon_name,
- gint directory_index)
-{
- guint32 hash_offset;
- guint32 n_buckets;
- guint32 chain_offset;
- int hash;
- guint32 image_list_offset, n_images;
- int i;
-
- if (!icon_name)
- return 0;
-
- chain_offset = cache->last_chain_offset;
- if (chain_offset)
- {
- guint32 name_offset = GET_UINT32 (cache->buffer, chain_offset + 4);
- gchar *name = cache->buffer + name_offset;
-
- if (strcmp (name, icon_name) == 0)
- goto find_dir;
- }
-
- hash_offset = GET_UINT32 (cache->buffer, 4);
- n_buckets = GET_UINT32 (cache->buffer, hash_offset);
- hash = icon_name_hash (icon_name) % n_buckets;
-
- chain_offset = GET_UINT32 (cache->buffer, hash_offset + 4 + 4 * hash);
- while (chain_offset != 0xffffffff)
- {
- guint32 name_offset = GET_UINT32 (cache->buffer, chain_offset + 4);
- gchar *name = cache->buffer + name_offset;
-
- if (strcmp (name, icon_name) == 0)
- {
- cache->last_chain_offset = chain_offset;
- goto find_dir;
- }
-
- chain_offset = GET_UINT32 (cache->buffer, chain_offset);
+ return i;
}
- cache->last_chain_offset = 0;
- return 0;
-
-find_dir:
- /* We've found an icon list, now check if we have the right icon in it */
- image_list_offset = GET_UINT32 (cache->buffer, chain_offset + 8);
- n_images = GET_UINT32 (cache->buffer, image_list_offset);
-
- for (i = 0; i < n_images; i++)
- {
- if (GET_UINT16 (cache->buffer, image_list_offset + 4 + 8 * i) ==
- directory_index)
- return image_list_offset + 4 + 8 * i;
- }
-
- return 0;
-}
-
-gint
-gtk_icon_cache_get_icon_flags (GtkIconCache *cache,
- const gchar *icon_name,
- gint directory_index)
-{
- guint32 image_offset;
-
- image_offset = find_image_offset (cache, icon_name, directory_index);
-
- if (!image_offset)
- return 0;
-
- return GET_UINT16 (cache->buffer, image_offset + 2);
-}
-
-gboolean
-gtk_icon_cache_has_icons (GtkIconCache *cache,
- const gchar *directory)
-{
- int directory_index;
- guint32 hash_offset, n_buckets;
- guint32 chain_offset;
- guint32 image_list_offset, n_images;
- int i, j;
-
- directory_index = get_directory_index (cache, directory);
-
- if (directory_index == -1)
- return FALSE;
-
- hash_offset = GET_UINT32 (cache->buffer, 4);
- n_buckets = GET_UINT32 (cache->buffer, hash_offset);
-
- for (i = 0; i < n_buckets; i++)
- {
- chain_offset = GET_UINT32 (cache->buffer, hash_offset + 4 + 4 * i);
- while (chain_offset != 0xffffffff)
- {
- image_list_offset = GET_UINT32 (cache->buffer, chain_offset + 8);
- n_images = GET_UINT32 (cache->buffer, image_list_offset);
-
- for (j = 0; j < n_images; j++)
- {
- if (GET_UINT16 (cache->buffer, image_list_offset + 4 + 8 * j) ==
- directory_index)
- return TRUE;
- }
-
- chain_offset = GET_UINT32 (cache->buffer, chain_offset);
- }
- }
-
- return FALSE;
+ return -1;
}
GHashTable *
@@ -417,203 +280,3 @@ gtk_icon_cache_list_icons_in_directory (GtkIconCache *cache,
return icons;
}
-
-void
-gtk_icon_cache_add_icons (GtkIconCache *cache,
- const gchar *directory,
- GHashTable *hash_table)
-{
- int directory_index;
- guint32 hash_offset, n_buckets;
- guint32 chain_offset;
- guint32 image_list_offset, n_images;
- int i, j;
-
- directory_index = get_directory_index (cache, directory);
-
- if (directory_index == -1)
- return;
-
- hash_offset = GET_UINT32 (cache->buffer, 4);
- n_buckets = GET_UINT32 (cache->buffer, hash_offset);
-
- for (i = 0; i < n_buckets; i++)
- {
- chain_offset = GET_UINT32 (cache->buffer, hash_offset + 4 + 4 * i);
- while (chain_offset != 0xffffffff)
- {
- guint32 name_offset = GET_UINT32 (cache->buffer, chain_offset + 4);
- gchar *name = cache->buffer + name_offset;
-
- image_list_offset = GET_UINT32 (cache->buffer, chain_offset + 8);
- n_images = GET_UINT32 (cache->buffer, image_list_offset);
-
- for (j = 0; j < n_images; j++)
- {
- if (GET_UINT16 (cache->buffer, image_list_offset + 4 + 8 * j) ==
- directory_index)
- g_hash_table_insert (hash_table, name, NULL);
- }
-
- chain_offset = GET_UINT32 (cache->buffer, chain_offset);
- }
- }
-}
-
-gboolean
-gtk_icon_cache_has_icon (GtkIconCache *cache,
- const gchar *icon_name)
-{
- guint32 hash_offset;
- guint32 n_buckets;
- guint32 chain_offset;
- gint hash;
-
- hash_offset = GET_UINT32 (cache->buffer, 4);
- n_buckets = GET_UINT32 (cache->buffer, hash_offset);
-
- hash = icon_name_hash (icon_name) % n_buckets;
-
- chain_offset = GET_UINT32 (cache->buffer, hash_offset + 4 + 4 * hash);
- while (chain_offset != 0xffffffff)
- {
- guint32 name_offset = GET_UINT32 (cache->buffer, chain_offset + 4);
- gchar *name = cache->buffer + name_offset;
-
- if (strcmp (name, icon_name) == 0)
- return TRUE;
-
- chain_offset = GET_UINT32 (cache->buffer, chain_offset);
- }
-
- return FALSE;
-}
-
-gboolean
-gtk_icon_cache_has_icon_in_directory (GtkIconCache *cache,
- const gchar *icon_name,
- const gchar *directory)
-{
- guint32 hash_offset;
- guint32 n_buckets;
- guint32 chain_offset;
- gint hash;
- gboolean found_icon = FALSE;
- gint directory_index;
-
- directory_index = get_directory_index (cache, directory);
-
- if (directory_index == -1)
- return FALSE;
-
- hash_offset = GET_UINT32 (cache->buffer, 4);
- n_buckets = GET_UINT32 (cache->buffer, hash_offset);
-
- hash = icon_name_hash (icon_name) % n_buckets;
-
- chain_offset = GET_UINT32 (cache->buffer, hash_offset + 4 + 4 * hash);
- while (chain_offset != 0xffffffff)
- {
- guint32 name_offset = GET_UINT32 (cache->buffer, chain_offset + 4);
- gchar *name = cache->buffer + name_offset;
-
- if (strcmp (name, icon_name) == 0)
- {
- found_icon = TRUE;
- break;
- }
-
- chain_offset = GET_UINT32 (cache->buffer, chain_offset);
- }
-
- if (found_icon)
- {
- guint32 image_list_offset = GET_UINT32 (cache->buffer, chain_offset + 8);
- guint32 n_images = GET_UINT32 (cache->buffer, image_list_offset);
- guint32 image_offset = image_list_offset + 4;
- gint i;
- for (i = 0; i < n_images; i++)
- {
- guint16 index = GET_UINT16 (cache->buffer, image_offset);
-
- if (index == directory_index)
- return TRUE;
- image_offset += 8;
- }
- }
-
- return FALSE;
-}
-
-static void
-pixbuf_destroy_cb (guchar *pixels,
- gpointer data)
-{
- GtkIconCache *cache = data;
-
- gtk_icon_cache_unref (cache);
-}
-
-GdkPixbuf *
-gtk_icon_cache_get_icon (GtkIconCache *cache,
- const gchar *icon_name,
- gint directory_index)
-{
- guint32 offset, image_data_offset, pixel_data_offset;
- guint32 length, type;
- GdkPixbuf *pixbuf;
- GdkPixdata pixdata;
- GError *error = NULL;
-
- offset = find_image_offset (cache, icon_name, directory_index);
-
- if (!offset)
- return NULL;
-
- image_data_offset = GET_UINT32 (cache->buffer, offset + 4);
-
- if (!image_data_offset)
- return NULL;
-
- pixel_data_offset = GET_UINT32 (cache->buffer, image_data_offset);
-
- type = GET_UINT32 (cache->buffer, pixel_data_offset);
-
- if (type != 0)
- {
- GTK_NOTE (ICONTHEME, g_message ("invalid pixel data type %u", type));
- return NULL;
- }
-
- length = GET_UINT32 (cache->buffer, pixel_data_offset + 4);
-
-G_GNUC_BEGIN_IGNORE_DEPRECATIONS
- if (!gdk_pixdata_deserialize (&pixdata, length,
- (guchar *)(cache->buffer + pixel_data_offset + 8),
- &error))
- {
- GTK_NOTE (ICONTHEME, g_message ("could not deserialize data: %s", error->message));
- g_error_free (error);
-
- return NULL;
- }
-G_GNUC_END_IGNORE_DEPRECATIONS
-
- pixbuf = gdk_pixbuf_new_from_data (pixdata.pixel_data, GDK_COLORSPACE_RGB,
- (pixdata.pixdata_type & GDK_PIXDATA_COLOR_TYPE_MASK) ==
GDK_PIXDATA_COLOR_TYPE_RGBA,
- 8, pixdata.width, pixdata.height, pixdata.rowstride,
- (GdkPixbufDestroyNotify)pixbuf_destroy_cb,
- cache);
- if (!pixbuf)
- {
- GTK_NOTE (ICONTHEME, g_message ("could not convert pixdata to pixbuf: %s", error->message));
- g_error_free (error);
-
- return NULL;
- }
-
- gtk_icon_cache_ref (cache);
-
- return pixbuf;
-}
-
diff --git a/gtk/gtkiconcacheprivate.h b/gtk/gtkiconcacheprivate.h
index 2f73891e6b..4925e9c870 100644
--- a/gtk/gtkiconcacheprivate.h
+++ b/gtk/gtkiconcacheprivate.h
@@ -25,28 +25,8 @@ typedef struct _GtkIconCache GtkIconCache;
GtkIconCache *gtk_icon_cache_new (const gchar *data);
GtkIconCache *gtk_icon_cache_new_for_path (const gchar *path);
-gint gtk_icon_cache_get_directory_index (GtkIconCache *cache,
- const gchar *directory);
-gboolean gtk_icon_cache_has_icon (GtkIconCache *cache,
- const gchar *icon_name);
-gboolean gtk_icon_cache_has_icon_in_directory (GtkIconCache *cache,
- const gchar *icon_name,
- const gchar *directory);
GHashTable *gtk_icon_cache_list_icons_in_directory (GtkIconCache *cache,
const gchar *directory);
-gboolean gtk_icon_cache_has_icons (GtkIconCache *cache,
- const gchar *directory);
-void gtk_icon_cache_add_icons (GtkIconCache *cache,
- const gchar *directory,
- GHashTable *hash_table);
-
-gint gtk_icon_cache_get_icon_flags (GtkIconCache *cache,
- const gchar *icon_name,
- gint directory_index);
-GdkPixbuf *gtk_icon_cache_get_icon (GtkIconCache *cache,
- const gchar *icon_name,
- gint directory_index);
-
GtkIconCache *gtk_icon_cache_ref (GtkIconCache *cache);
void gtk_icon_cache_unref (GtkIconCache *cache);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]