libtool-patches
[Top][All Lists]
Advanced

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

libtool--gary--1.0--patch-30


From: Gary V. Vaughan
Subject: libtool--gary--1.0--patch-30
Date: Fri, 9 Jul 2004 16:16:33 +0100 (BST)
User-agent: mailnotify/0.3

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Okay to commit?
- -- 
Gary V. Vaughan      ())_.  address@hidden,gnu.org}
Research Scientist   ( '/   http://tkd.kicks-ass.net
GNU Hacker           / )=   http://www.gnu.org/software/libtool
Technical Author   `(_~)_   http://sources.redhat.com/autobook
_________________________________________________________
This patch notification generated by tlaapply version 0.5
http://tkd.kicks-ass.net/arch/address@hidden/cvs-utils--tla--1.0
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (Darwin)

iD8DBQFA7rbQFRMICSmD1gYRAsh+AKCc27KdVRaEdZco96ApJ6lm7oyJ7wCfetcA
fBTJT9O5A43bQFgYfiNf4IQ=
=HzkL
-----END PGP SIGNATURE-----
* looking for address@hidden/libtool--gary--1.0--patch-29 to compare with
* comparing to address@hidden/libtool--gary--1.0--patch-29
M  ChangeLog
M  libltdl/ltdl.c
M  libltdl/lt_dlloader.h
M  libltdl/loaders/dld_link.c
M  libltdl/loaders/dlopen.c
M  libltdl/loaders/dyld.c
M  libltdl/loaders/load_add_on.c
M  libltdl/loaders/loadlibrary.c
M  libltdl/loaders/preopen.c
M  libltdl/loaders/shl_load.c

* modified files

Index: Changelog
from  Gary V. Vaughan  <address@hidden>
        Collapse two almost identical structures into one:

        * libltdl/lt_dlloader.h (lt_dlloader): Add next field.
        * libltdl/ltdl.c (lt_user_dlloader): Remove entirely.  Change all
        callers to use lt_dlloader instead.  Add a compatibility macro.
        (lt_dlloader_add): Remove copy and allocate stage, just hook
        directly into the loaders list.

2004-07-09  Gary V. Vaughan  <address@hidden>

--- orig/libltdl/loaders/dld_link.c
+++ mod/libltdl/loaders/dld_link.c
@@ -36,7 +36,7 @@
    be fetched from the preloaded symbol list by lt_dlsym():  */
 #define get_vtable     dld_link_LTX_get_vtable
 
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
 
 
 /* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
 /* Return the vtable for this loader, only the name and sym_prefix
    attributes (plus the virtual function implementations, obviously)
    change between loaders.  */
-lt_user_dlloader *
+lt_dlloader *
 get_vtable (lt_user_data loader_data)
 {
-  static lt_user_dlloader *vtable = 0;
+  static lt_dlloader *vtable = 0;
 
   if (!vtable)
     {


--- orig/libltdl/loaders/dlopen.c
+++ mod/libltdl/loaders/dlopen.c
@@ -36,7 +36,7 @@
    be fetched from the preloaded symbol list by lt_dlsym():  */
 #define get_vtable     dlopen_LTX_get_vtable
 
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
 
 
 /* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
 /* Return the vtable for this loader, only the name and sym_prefix
    attributes (plus the virtual function implementations, obviously)
    change between loaders.  */
-lt_user_dlloader *
+lt_dlloader *
 get_vtable (lt_user_data loader_data)
 {
-  static lt_user_dlloader *vtable = 0;
+  static lt_dlloader *vtable = 0;
 
   if (!vtable)
     {


--- orig/libltdl/loaders/dyld.c
+++ mod/libltdl/loaders/dyld.c
@@ -36,7 +36,7 @@
    be fetched from the preloaded symbol list by lt_dlsym():  */
 #define get_vtable     dyld_LTX_get_vtable
 
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
 
 
 /* Boilerplate code to set up the vtable for hooking this loader into
@@ -51,10 +51,10 @@
 /* Return the vtable for this loader, only the name and sym_prefix
    attributes (plus the virtual function implementations, obviously)
    change between loaders.  */
-lt_user_dlloader *
+lt_dlloader *
 get_vtable (lt_user_data loader_data)
 {
-  static lt_user_dlloader *vtable = 0;
+  static lt_dlloader *vtable = 0;
 
   if (!vtable)
     {


--- orig/libltdl/loaders/load_add_on.c
+++ mod/libltdl/loaders/load_add_on.c
@@ -36,7 +36,7 @@
    be fetched from the preloaded symbol list by lt_dlsym():  */
 #define get_vtable     load_add_on_LTX_get_vtable
 
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
 
 
 /* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
 /* Return the vtable for this loader, only the name and sym_prefix
    attributes (plus the virtual function implementations, obviously)
    change between loaders.  */
-lt_user_dlloader *
+lt_dlloader *
 get_vtable (lt_user_data loader_data)
 {
-  static lt_user_dlloader *vtable = 0;
+  static lt_dlloader *vtable = 0;
 
   if (!vtable)
     {


--- orig/libltdl/loaders/loadlibrary.c
+++ mod/libltdl/loaders/loadlibrary.c
@@ -36,7 +36,7 @@
    be fetched from the preloaded symbol list by lt_dlsym():  */
 #define get_vtable     loadlibrary_LTX_get_vtable
 
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
 
 
 /* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
 /* Return the vtable for this loader, only the name and sym_prefix
    attributes (plus the virtual function implementations, obviously)
    change between loaders.  */
-lt_user_dlloader *
+lt_dlloader *
 get_vtable (lt_user_data loader_data)
 {
-  static lt_user_dlloader *vtable = 0;
+  static lt_dlloader *vtable = 0;
 
   if (!vtable)
     {


--- orig/libltdl/loaders/preopen.c
+++ mod/libltdl/loaders/preopen.c
@@ -36,7 +36,7 @@
    be fetched from the preloaded symbol list by lt_dlsym():  */
 #define get_vtable     preopen_LTX_get_vtable
 
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
 
 
 /* Boilerplate code to set up the vtable for hooking this loader into
@@ -51,10 +51,10 @@
 /* Return the vtable for this loader, only the name and sym_prefix
    attributes (plus the virtual function implementations, obviously)
    change between loaders.  */
-lt_user_dlloader *
+lt_dlloader *
 get_vtable (lt_user_data loader_data)
 {
-  static lt_user_dlloader *vtable = 0;
+  static lt_dlloader *vtable = 0;
 
   if (!vtable)
     {


--- orig/libltdl/loaders/shl_load.c
+++ mod/libltdl/loaders/shl_load.c
@@ -36,7 +36,7 @@
    be fetched from the preloaded symbol list by lt_dlsym():  */
 #define get_vtable     shl_load_LTX_get_vtable
 
-extern lt_user_dlloader *get_vtable (lt_user_data loader_data);
+extern lt_dlloader *get_vtable (lt_user_data loader_data);
 
 
 /* Boilerplate code to set up the vtable for hooking this loader into
@@ -49,10 +49,10 @@
 /* Return the vtable for this loader, only the name and sym_prefix
    attributes (plus the virtual function implementations, obviously)
    change between loaders.  */
-lt_user_dlloader *
+lt_dlloader *
 get_vtable (lt_user_data loader_data)
 {
-  static lt_user_dlloader *vtable = 0;
+  static lt_dlloader *vtable = 0;
 
   if (!vtable)
     {


--- orig/libltdl/lt_dlloader.h
+++ mod/libltdl/lt_dlloader.h
@@ -35,15 +35,14 @@
 
 LT_BEGIN_C_DECLS
 
-typedef struct lt_user_dlloader lt_user_dlloader;
 typedef        struct lt_dlloader      lt_dlloader;
 typedef void *                 lt_user_data;
 typedef void *                 lt_module;
 
 /* Type of a function to get a loader's vtable:  */
-typedef lt_user_dlloader *lt_get_vtable (lt_user_data loader_data);
+typedef lt_dlloader *lt_get_vtable     (lt_user_data loader_data);
 
-/* Function pointer types for creating user defined module loaders:  */
+/* Function pointer types for module loader vtable entries:  */
 typedef int        lt_dlloader_init    (lt_user_data loader_data);
 typedef int        lt_dlloader_exit    (lt_user_data loader_data);
 typedef lt_module   lt_module_open     (lt_user_data loader_data,
@@ -58,7 +57,10 @@
   LT_DLLOADER_PREPEND = 0, LT_DLLOADER_APPEND
 } lt_dlloader_priority;
 
-struct lt_user_dlloader {
+/* This structure defines a module loader, as populated by the get_vtable
+   entry point of each loader.  */
+struct lt_dlloader {
+  lt_dlloader *                next;
   const char *         name;
   const char *         sym_prefix;
   lt_module_open *     module_open;
@@ -70,14 +72,19 @@
   lt_dlloader_priority priority;
 };
 
-LT_SCOPE lt_dlloader    *lt_dlloader_next    (lt_dlloader *place);
-LT_SCOPE lt_dlloader    *lt_dlloader_find    (const char *loader_name);
-LT_SCOPE const char     *lt_dlloader_name    (lt_dlloader *place);
-LT_SCOPE lt_user_data   *lt_dlloader_data    (lt_dlloader *place);
-LT_SCOPE int           lt_dlloader_add
-                               (const struct lt_user_dlloader *dlloader,
-                                lt_user_data data);
-LT_SCOPE int           lt_dlloader_remove  (const char *loader_name);
+LT_SCOPE lt_dlloader * lt_dlloader_next   (lt_dlloader *place);
+LT_SCOPE lt_dlloader * lt_dlloader_find   (const char *name);
+LT_SCOPE const char *  lt_dlloader_name   (lt_dlloader *place);
+LT_SCOPE lt_user_data *        lt_dlloader_data   (lt_dlloader *place);
+LT_SCOPE int           lt_dlloader_add    (lt_dlloader *dlloader,
+                                           lt_user_data data);
+LT_SCOPE int           lt_dlloader_remove  (const char *name);
+
+
+
+/* --- Backwards source compatibility ---  */
+
+#define lt_user_dlloader lt_dlloader
 
 
 LT_END_C_DECLS


--- orig/libltdl/ltdl.c
+++ mod/libltdl/ltdl.c
@@ -57,23 +57,6 @@
 #define LT_SYMBOL_OVERHEAD     5
 
 
-
-
-/* --- OPAQUE STRUCTURES DECLARED IN LTDL.H --- */
-
-
-/* This structure is used for the list of registered loaders. */
-struct lt_dlloader {
-  struct lt_dlloader   *next;
-  const char          *loader_name;    /* identifying name for each loader */
-  const char          *sym_prefix;     /* prefix for symbols */
-  lt_module_open       *module_open;
-  lt_module_close      *module_close;
-  lt_find_sym         *find_sym;
-  lt_dlloader_exit     *dlloader_exit;
-  lt_user_data         dlloader_data;
-};
-
 /* Various boolean flags can be stored in the flags field of an
    lt_dlhandle_struct... */
 #define LT_DLGET_FLAG(handle, flag) (((handle)->flags & (flag)) == (flag))
@@ -177,7 +160,7 @@
 static int
 loader_init (lt_get_vtable *vtable_func, lt_user_data data)
 {
-  lt_user_dlloader *vtable = 0;
+  lt_dlloader *vtable = 0;
   int errors = 0;
 
   if (vtable_func)
@@ -216,7 +199,7 @@
 #define get_vtable             preopen_LTX_get_vtable
 #define preloaded_symbols      LT_CONC3(lt_, LTDLOPEN, _LTX_preloaded_symbols)
 
-extern lt_user_dlloader *      get_vtable (lt_user_data data);
+extern lt_dlloader *   get_vtable (lt_user_data data);
 extern lt_dlsymlist            preloaded_symbols;
 
 /* Initialize libltdl. */
@@ -2138,11 +2121,10 @@
 
 
 int
-lt_dlloader_add (const struct lt_user_dlloader *dlloader,
-                lt_user_data data)
+lt_dlloader_add (lt_dlloader *dlloader, lt_user_data data)
 {
   int errors = 0;
-  lt_dlloader *node = 0, *ptr = 0;
+  lt_dlloader *ptr = 0;
 
   if ((dlloader == 0)  /* diagnose null parameters */
       || (dlloader->module_open == 0)
@@ -2153,35 +2135,19 @@
       return 1;
     }
 
-  /* Create a new dlloader node with copies of the user callbacks.  */
-  node = lt__malloc (sizeof *node);
-  if (!node)
-    return 1;
-
-  /* There is no need to record the dlloader->dlloader_init function,
-     since we won't need it again.  */
-  node->next           = 0;
-  node->loader_name    = dlloader->name;
-  node->sym_prefix     = dlloader->sym_prefix;
-  node->module_open    = dlloader->module_open;
-  node->module_close   = dlloader->module_close;
-  node->find_sym       = dlloader->find_sym;
-  node->dlloader_exit  = dlloader->dlloader_exit;
-  node->dlloader_data  = dlloader->dlloader_data;
-
   switch (dlloader->priority)
     {
     case LT_DLLOADER_PREPEND:
       /* Tack NODE on the front of the LOADERS list.  */
-      node->next = loaders;
-      loaders   = node;
+      dlloader->next = loaders;
+      loaders = dlloader;
       break;
 
     case LT_DLLOADER_APPEND:
       /* Add NODE to the end of the LOADERS list.  */
       for (ptr = loaders; ptr->next; ptr = ptr->next)
        /*NOWORK*/;
-      ptr->next = node;
+      ptr->next = dlloader;
       break;
 
     default:
@@ -2194,9 +2160,9 @@
 }
 
 int
-lt_dlloader_remove (const char *loader_name)
+lt_dlloader_remove (const char *name)
 {
-  lt_dlloader *place = lt_dlloader_find (loader_name);
+  lt_dlloader *place = lt_dlloader_find (name);
   lt_dlhandle handle;
   int errors = 0;
 
@@ -2227,7 +2193,7 @@
       lt_dlloader *prev;
       for (prev = loaders; prev->next; prev = prev->next)
        {
-         if (streq (prev->next->loader_name, loader_name))
+         if (streq (prev->next->name, name))
            {
              break;
            }
@@ -2260,7 +2226,7 @@
 
   if (place)
     {
-      name = place ? place->loader_name : 0;
+      name = place ? place->name : 0;
     }
   else
     {
@@ -2288,13 +2254,13 @@
 }
 
 lt_dlloader *
-lt_dlloader_find (const char *loader_name)
+lt_dlloader_find (const char *name)
 {
   lt_dlloader *place = 0;
 
   for (place = loaders; place; place = place->next)
     {
-      if (streq (place->loader_name, loader_name))
+      if (streq (place->name, name))
        {
          break;
        }




reply via email to

[Prev in Thread] Current Thread [Next in Thread]