- From: Vic Bancroft <bancroft@america.net>
 - Date: Sat, 15 Jan 2000 05:19:21 -0500
 - To: www-lib@w3.org
 - Message-ID: <388049A9.E8D069A5@america.net>
 
In using w3c-libwww-5.2.8, we noticed an opportunity for enhancement in
the implementation of HTList.
The idea is to provide new versions of HTList_appendObject and
HTList_addObject which returns a pointer to the new HTList added or
appended.  This allows one to keep a reference to the end of the list
outside of the list itself, which can be used to speed up certain list
operations.
HTList.c
     PUBLIC HTList * HTList_addList (HTList * me, void * newObject)
     {
         if (me) {
             HTList *newNode;
             if ((newNode = (HTList  *) HT_CALLOC(1,
     sizeof(HTList))) == NULL)
                 HT_OUTOFMEM("HTList_addObject");
             newNode->object = newObject;
             newNode->next = me->next;
             me->next = newNode;
             return newNode;
         } else {
             HTTRACE(CORE_TRACE, "HTList...... Can not add object
     %p to nonexisting List\n
     " _
                         newObject);
         }
         return (HTList *) NULL;
     }
     PUBLIC HTList * HTList_appendList (HTList * me, void *
     newObject)
     {
         if (me) {
             while (me->next) me = me->next;
             return HTList_addList(me, newObject);
         }
         return (HTList *) NULL;
     }
These functions require two further modifications to publish these new
entry points.
HTList.h
     extern HTList * HTList_addList (HTList * me, void *
     newObject);
     extern HTList * HTList_appendList (HTList * me, void *
     newObject);
wwwutils.def
     HTList_addList          @ 518
     HTList_appendList       @ 519
more,
l8r,
 ------------------------------------------------------------------
 Victor Bancroft
 Fellow, Artificial Intelligence Center              (706) 542-0358
 Athens, Georgia  30602, U.S.A          http://ai.uga.edu/~bancroft
 Senior Software Engineer, Business Technology Group (404) 231-5520
                                                 FAX (404) 231-5377
Received on Friday, 14 January 2000 10:26:28 UTC