- 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