changed the return type for the GModuleCheckInit function to be a string,

Mon Aug 17 03:41:52 1998  Tim Janik  <timj@gtk.org>

        * gmodule.h:
        * gmodule.c (g_module_open): changed the return type for the
        GModuleCheckInit function to be a string, describing the error
        condition.
        (g_module_symbol): show the failing symbol on error messages.
This commit is contained in:
Tim Janik 1998-08-17 02:40:30 +00:00 committed by Tim Janik
parent e93e494518
commit e746ca4f15
4 changed files with 25 additions and 8 deletions

View File

@ -1,3 +1,11 @@
Mon Aug 17 03:41:52 1998 Tim Janik <timj@gtk.org>
* gmodule.h:
* gmodule.c (g_module_open): changed the return type for the
GModuleCheckInit function to be a string, describing the error
condition.
(g_module_symbol): show the failing symbol on error messages.
Fri Aug 14 02:24:39 1998 Tim Janik <timj@gtk.org>
* Makefile.am: feature the G_LOG_DOMAIN macro to set the log domain

View File

@ -165,7 +165,7 @@ g_module_open (const gchar *file_name,
{
gchar *saved_error;
GModuleCheckInit check_init;
gboolean check_failed = FALSE;
const gchar *check_failed = NULL;
/* search the module list by handle, since file names are not unique */
module = g_module_find_by_handle (handle);
@ -200,9 +200,13 @@ g_module_open (const gchar *file_name,
if (check_failed)
{
gchar *error;
error = g_strconcat ("GModule initialization check failed: ", check_failed, NULL);
g_module_close (module);
module = NULL;
g_module_set_error ("GModule initialization check failed");
g_module_set_error (error);
g_free (error);
}
else
g_module_set_error (saved_error);
@ -285,6 +289,11 @@ g_module_symbol (GModule *module,
if (module_error)
{
gchar *error;
error = g_strconcat ("`", symbol_name, "': ", module_error, NULL);
g_module_set_error (error);
g_free (error);
*symbol = NULL;
return FALSE;
}

View File

@ -39,12 +39,12 @@ extern const char *g_log_domain_gmodule;
typedef enum
{
G_MODULE_BIND_LAZY = 1 << 0,
G_MODULE_BIND_MASK = 0x01
G_MODULE_BIND_MASK = 0x01
} GModuleFlags;
typedef struct _GModule GModule;
typedef gboolean (*GModuleCheckInit) (GModule *module);
typedef void (*GModuleDeInit) (GModule *module);
typedef struct _GModule GModule;
typedef const gchar* (*GModuleCheckInit) (GModule *module);
typedef void (*GModuleDeInit) (GModule *module);
/* return TRUE if dynamic module loading is supported */
gboolean g_module_supported (void);

View File

@ -18,12 +18,12 @@
*/
#include <gmodule.h>
G_MODULE_EXPORT gboolean
G_MODULE_EXPORT const gchar*
g_module_check_init (GModule *module)
{
g_print ("GPluginB: check-init\n");
return 0;
return NULL;
}
G_MODULE_EXPORT void