diff --git a/gtk/gtkicontheme.c b/gtk/gtkicontheme.c index 99cdc4b5e54577b17e3ed0bbb5f8de7717fa5fb7..8e13eba147d681cd60d17a2eea51750a88b0e01e 100644 --- a/gtk/gtkicontheme.c +++ b/gtk/gtkicontheme.c @@ -654,10 +654,20 @@ icon_key_equal (gconstpointer _a, /****************** Icon cache *********************** * - * The icon cache, this spans both GtkIconTheme and GtkIcon, so the locking is - * a bit tricky. Never do block with the lock held, and never do any - * callouts to other code. In particular, don't call theme or finalizers - * because that will take the lock when removing from the icon cache. + * The icon cache, this spans both GtkIconTheme and GtkIconPaintable, + * so the locking is a bit tricky. Never do block with the lock held, + * and never do any callouts to other code. In particular, don't call + * theme or finalizers, because that will take the lock when removing + * from the icon cache. + */ + +/* The LRU cache is a short list of GtkIconPaintables that are kept + * alive even though their IconInfo would otherwise have been freed, + * so that we can avoid reloading these constantly. + * + * We put paintables on the lru list when we get a cache hit. Once + * they fall off the lru list, finalizing the paintable will remove + * the icon from the cache. */ /* This is called with icon_cache lock held so must not take any locks */ diff --git a/meson.build b/meson.build index e32306678ee8ce4b5fc93c6bc413b79a65a610c6..d8ebc589c615639a5ad831dc24c0db1fcf558819 100644 --- a/meson.build +++ b/meson.build @@ -19,7 +19,6 @@ pango_minor_req = 56 # keep these numbers in sync with wrap files where there exist glib_req = '>= @0@.@1@'.format(glib_major_req, glib_minor_req) -introspection_req = '>= 1.@0@.0'.format(glib_minor_req) pango_req = '>= @0@.@1@'.format(pango_major_req, pango_minor_req) harfbuzz_req = '>= 8.4.0' fribidi_req = '>= 1.0.6' @@ -446,9 +445,6 @@ xkbdep = dependency('xkbcommon', version: xkbcommon_req, required: wa graphene_dep = dependency('graphene-gobject-1.0', version: graphene_req, default_options: ['tests=false', 'gobject_types=true']) iso_codes_dep = dependency('iso-codes', required: false) -gi_dep = dependency('gobject-introspection-1.0', version: introspection_req, - required: get_option('introspection').enabled() and - get_option('build-tests')) gstplayer_dep = dependency('gstreamer-player-1.0', version: gstreamer_req, required: get_option('media-gstreamer'), default_options: [ @@ -854,6 +850,8 @@ subdir('gsk') subdir('gtk') subdir('modules') subdir('tools') +subdir('po') +subdir('docs/reference') if get_option('build-demos') subdir('demos') endif @@ -952,9 +950,6 @@ if os_unix meson.override_dependency('gtk4-unix-print', libgtk_dep) endif -subdir('po') - -subdir('docs/reference') devenv = environment() devenv.set('GTK_PATH', meson.current_build_dir() / 'modules')