2007-12-29 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / filewatcher.c
index fb8ba9ed16268889fb6c0c78ff0d99a9ca2f6cd0..40f44364990b603d6c6c6a28d726bc4dcf7fe3a3 100644 (file)
@@ -15,6 +15,7 @@
 #include <mono/metadata/exception.h>
 #include <mono/metadata/filewatcher.h>
 #include <mono/metadata/marshal.h>
+#include <mono/utils/mono-dl.h>
 #if (defined (PLATFORM_WIN32) && WINVER >= 0x0400)
 
 /*
@@ -46,10 +47,11 @@ ves_icall_System_IO_FSW_SupportsFSW (void)
 #if HAVE_KQUEUE
        return 3;
 #else
-       GModule *fam_module;
-       gchar *filename;
+       MonoDl *fam_module;
        int lib_used = 4; /* gamin */
        int inotify_instance;
+       void *iter;
+       char *err;
 
        MONO_ARCH_SAVE_REGS;
 
@@ -59,20 +61,19 @@ ves_icall_System_IO_FSW_SupportsFSW (void)
                return 5; /* inotify */
        }
 
-       filename = g_module_build_path (NULL, "libgamin-1.so.0");
-       fam_module = g_module_open (filename, G_MODULE_BIND_LAZY);
-       g_free (filename);
+       iter = NULL;
+       fam_module = mono_dl_open ("libgamin-1.so", MONO_DL_LAZY, NULL);
        if (fam_module == NULL) {
                lib_used = 2; /* FAM */
-               filename = g_module_build_path (NULL, "libfam.so.0");
-               fam_module = g_module_open (filename, G_MODULE_BIND_LAZY);
-               g_free (filename);
+               iter = NULL;
+               fam_module = mono_dl_open ("libfam.so", MONO_DL_LAZY, NULL);
        }
 
        if (fam_module == NULL)
                return 0;
 
-       g_module_symbol (fam_module, "FAMNextEvent", (gpointer *) &FAMNextEvent);
+       err = mono_dl_symbol (fam_module, "FAMNextEvent", (gpointer *) &FAMNextEvent);
+       g_free (err);
        if (FAMNextEvent == NULL)
                return 0;