[gnome-builder] Use GModule API instead of dlopen()



commit fa6629e6c90b2d80870681433fb31b348fa747f8
Author: Garrett Regier <garrettregier gmail com>
Date:   Tue Jan 12 07:36:27 2016 -0800

    Use GModule API instead of dlopen()
    
    https://bugzilla.gnome.org/show_bug.cgi?id=760355

 configure.ac              |    3 ++-
 contrib/egg/egg-counter.c |   14 ++++++--------
 2 files changed, 8 insertions(+), 9 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 16db336..2cc0adb 100644
--- a/configure.ac
+++ b/configure.ac
@@ -162,6 +162,7 @@ m4_define([pangoft2_required_version], [1.38.0])
 m4_define([peas_required_version], [1.17.0])
 
 PKG_CHECK_MODULES(EGG,      [glib-2.0 >= glib_required_version
+                             gmodule-2.0 >= glib_required_version
                              gtk+-3.0 >= gtk_required_version])
 PKG_CHECK_MODULES(GD,       [gtk+-3.0 >= gtk_required_version])
 PKG_CHECK_MODULES(GEDIT,    [glib-2.0 >= glib_required_version
@@ -170,7 +171,7 @@ PKG_CHECK_MODULES(ICONS,    [gio-2.0 >= glib_required_version])
 PKG_CHECK_MODULES(LIBGITG,  [libgit2-glib-1.0 >= ggit_required_version])
 PKG_CHECK_MODULES(LIBIDE,   [gio-2.0 >= glib_required_version
                              gio-unix-2.0 >= glib_required_version
-                            gtk+-3.0 >= gtk_required_version
+                             gtk+-3.0 >= gtk_required_version
                              gtksourceview-3.0 >= gtksourceview_required_version
                              libgit2-glib-1.0 >= ggit_required_version
                              libpeas-1.0 >= peas_required_version
diff --git a/contrib/egg/egg-counter.c b/contrib/egg/egg-counter.c
index 6391e43..cda05d4 100644
--- a/contrib/egg/egg-counter.c
+++ b/contrib/egg/egg-counter.c
@@ -24,10 +24,8 @@
 # define _GNU_SOURCE
 #endif
 
-#ifdef __linux__
-# include <dlfcn.h>
-#endif
 #include <glib/gprintf.h>
+#include <gmodule.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
 #include <sys/types.h>
@@ -538,25 +536,25 @@ _egg_counter_find_getcpu_in_vdso (void)
 
   for (i = 0; vdso_names [i]; i++)
     {
-      void *lib;
+      GModule *lib;
       gint j;
 
-      lib = dlopen (vdso_names [i], RTLD_NOW | RTLD_GLOBAL);
+      lib = g_module_open (vdso_names [i], 0);
       if (lib == NULL)
         continue;
 
       for (j = 0; sym_names [j]; j++)
         {
-          void *sym;
+          void *sym = NULL;
 
-          sym = dlsym (lib, sym_names [j]);
+          g_module_symbol (lib, sym_names [j], &sym);
           if (!sym)
             continue;
 
           return sym;
         }
 
-      dlclose (lib);
+      g_module_close (lib);
     }
 
   return NULL;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]