gobject-introspection r498 - in trunk: . girepository
- From: walters svn gnome org
- To: svn-commits-list gnome org
- Subject: gobject-introspection r498 - in trunk: . girepository
- Date: Tue, 26 Aug 2008 20:04:38 +0000 (UTC)
Author: walters
Date: Tue Aug 26 20:04:38 2008
New Revision: 498
URL: http://svn.gnome.org/viewvc/gobject-introspection?rev=498&view=rev
Log:
2008-08-26 Colin Walters <walters verbum org>
* girepository/gtypelib.c (_g_typelib_init): Handle
both .la and .so names; this works better in the
uninstalled library case.
Modified:
trunk/ChangeLog
trunk/girepository/gtypelib.c
Modified: trunk/girepository/gtypelib.c
==============================================================================
--- trunk/girepository/gtypelib.c (original)
+++ trunk/girepository/gtypelib.c Tue Aug 26 20:04:38 2008
@@ -1937,7 +1937,7 @@
if (typelib->module == NULL)
{
- gchar *resolved_shlib;
+ GString *shlib_full;
/* Glade's autoconnect feature and OpenGL's extension mechanism
* as used by Clutter rely on dlopen(NULL) to work as a means of
@@ -1948,13 +1948,23 @@
* load modules globally for now.
*/
- resolved_shlib = g_module_build_path (NULL, shlib);
- typelib->module = g_module_open (resolved_shlib, G_MODULE_BIND_LAZY);
- if (typelib->module == NULL)
- g_warning ("Failed to load shared library referenced by the typelib: %s",
- g_module_error ());
+ typelib->module = g_module_open (shlib, G_MODULE_BIND_LAZY);
- g_free (resolved_shlib);
+ if (typelib->module == NULL)
+ {
+ shlib_full = g_string_new (shlib);
+ /* Prefix with "lib", try both .la and .so */
+ if (!g_str_has_prefix (shlib_full->str, "lib"))
+ g_string_prepend (shlib_full, "lib");
+ g_string_append (shlib_full, ".la");
+ typelib->module = g_module_open (shlib_full->str, G_MODULE_BIND_LAZY);
+ if (typelib->module == NULL)
+ g_string_overwrite (shlib_full, strlen (shlib_full->str)-2, "so");
+ typelib->module = g_module_open (shlib_full->str, G_MODULE_BIND_LAZY);
+ }
+ if (typelib->module == NULL)
+ g_warning ("Failed to load shared library '%s' referenced by the typelib: %s",
+ shlib, g_module_error ());
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]