Daniel Drake 33afebb2d7 Optimize g_irepository_find_by_gtype
When g_irepository_find_by_gtype() doesn't succeed on a simple prefix
match (the current 'fastpass' mechanism), it ends up taking a
considerable amount of CPU time, traversing the contents of all typelibs.

I imagine that the reasons to have the exhaustive search fallback are
not as strong as they used to be. For example, the case mentioned
(Clutter including Cogl) no longer seems to be true.

Also, typelibs (as generated by g-ir-scanner) now provide
comma-separated C prefix info for cases when the typelib includes
introspection info for multiple prefixes. For example, the Sugar typelib
has a c_prefix string of Sugar,EggSM,Gsm,Acme. So I imagine there are
not many remaining justified cases where the exhaustive search is needed.

With that in mind, I found two ways to optimize this function:

1. Support comma-separated C prefixes

2. Don't bother with an exhaustive search if we did find a typelib
   claiming support for the prefix. For example, if we're looking for
   GdkDeviceManagerXI2 (currently non-introspectable) and we already found
   typelib files providing the 'Gdk' prefix that didn't offer this, lets
   not bother with the exhaustive search, we aren't going to find anything.
2013-04-08 11:22:39 -04:00
2012-10-16 10:58:08 -04:00
2012-02-03 13:42:56 -05:00
2012-10-16 10:58:08 -04:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-02-03 13:42:56 -05:00
2012-06-29 10:05:50 -04:00
2012-10-16 10:58:08 -04:00
Description
Low-level core library that forms the basis for projects such as GTK+ and GNOME.
130 MiB
Languages
C 95.3%
Python 2.4%
Meson 1.3%
Objective-C 0.3%
Shell 0.2%
Other 0.5%