[Expat-checkins] expat/lib xmlparse.c,1.84,1.85 xmlrole.c,1.12,1.13 xmlrole.h,1.7,1.8

Fred L. Drake fdrake@users.sourceforge.net
Wed, 04 Sep 2002 18:58:29 -0700


Update of /cvsroot/expat/expat/lib
In directory usw-pr-cvs1:/tmp/cvs-serv26733/lib

Modified Files:
	xmlparse.c xmlrole.c xmlrole.h 
Log Message:
Use the FASTCALL macro for many of the internal functions.

Index: xmlparse.c
===================================================================
RCS file: /cvsroot/expat/expat/lib/xmlparse.c,v
retrieving revision 1.84
retrieving revision 1.85
diff -u -d -r1.84 -r1.85
--- xmlparse.c	5 Sep 2002 01:48:26 -0000	1.84
+++ xmlparse.c	5 Sep 2002 01:58:27 -0000	1.85
@@ -95,6 +95,7 @@
 #endif /* HAVE_MEMMOVE */
 
 #include "xmltok.h"
+#include "internal.h"
 #include "xmlrole.h"
 
 typedef const XML_Char *KEY;
@@ -271,10 +272,10 @@
   ENTITY *entity;
 } OPEN_INTERNAL_ENTITY;
 
-typedef enum XML_Error Processor(XML_Parser parser,
-                                 const char *start,
-                                 const char *end,
-                                 const char **endPtr);
+typedef enum XML_Error FASTCALL Processor(XML_Parser parser,
+                                          const char *start,
+                                          const char *end,
+                                          const char **endPtr);
 
 static Processor prologProcessor;
 static Processor prologInitProcessor;
@@ -294,114 +295,121 @@
 static Processor externalEntityInitProcessor3;
 static Processor externalEntityContentProcessor;
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName);
-static enum XML_Error
+static enum XML_Error FASTCALL
 processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
                const char *, const char *);
-static enum XML_Error
+static enum XML_Error FASTCALL
 initializeEncoding(XML_Parser parser);
-static enum XML_Error
+static enum XML_Error FASTCALL
 doProlog(XML_Parser parser, const ENCODING *enc, const char *s,
          const char *end, int tok, const char *next, const char **nextPtr);
-static enum XML_Error
+static enum XML_Error FASTCALL
 processInternalParamEntity(XML_Parser parser, ENTITY *entity);
-static enum XML_Error
+static enum XML_Error FASTCALL
 doContent(XML_Parser parser, int startTagLevel, const ENCODING *enc,
           const char *start, const char *end, const char **endPtr);
-static enum XML_Error
+static enum XML_Error FASTCALL
 doCdataSection(XML_Parser parser, const ENCODING *, const char **startPtr,
                const char *end, const char **nextPtr);
 #ifdef XML_DTD
-static enum XML_Error
+static enum XML_Error FASTCALL
 doIgnoreSection(XML_Parser parser, const ENCODING *, const char **startPtr,
                 const char *end, const char **nextPtr);
 #endif /* XML_DTD */
-static enum XML_Error
+static enum XML_Error FASTCALL
 storeAtts(XML_Parser parser, const ENCODING *,
           const char *s, TAG_NAME *tagNamePtr, BINDING **bindingsPtr);
-static int
+static int FASTCALL
 addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
            const XML_Char *uri, BINDING **bindingsPtr);
 
-static int
+static int FASTCALL
 defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *,
                 XML_Bool isCdata, XML_Bool isId, const XML_Char *dfltValue,
                 XML_Parser parser);
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 storeAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata,
                     const char *, const char *, STRING_POOL *);
-static enum XML_Error
+static enum XML_Error FASTCALL
 appendAttributeValue(XML_Parser parser, const ENCODING *, XML_Bool isCdata,
                      const char *, const char *, STRING_POOL *);
-static ATTRIBUTE_ID *
+static ATTRIBUTE_ID * FASTCALL
 getAttributeId(XML_Parser parser, const ENCODING *enc, const char *start,
                const char *end);
-static int
+static int FASTCALL
 setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *);
-static enum XML_Error
+static enum XML_Error FASTCALL
 storeEntityValue(XML_Parser parser, const ENCODING *enc, const char *start,
                  const char *end);
-static int
+static int FASTCALL
 reportProcessingInstruction(XML_Parser parser, const ENCODING *enc,
                             const char *start, const char *end);
-static int
+static int FASTCALL
 reportComment(XML_Parser parser, const ENCODING *enc, const char *start,
               const char *end);
-static void
+static void FASTCALL
 reportDefault(XML_Parser parser, const ENCODING *enc, const char *start,
               const char *end);
 
-static const XML_Char *getContext(XML_Parser parser);
-static XML_Bool setContext(XML_Parser parser, const XML_Char *context);
-static void normalizePublicId(XML_Char *s);
-static void dtdInit(DTD *, XML_Parser parser);
+static const XML_Char * FASTCALL getContext(XML_Parser parser);
+static XML_Bool FASTCALL
+setContext(XML_Parser parser, const XML_Char *context);
+static void FASTCALL normalizePublicId(XML_Char *s);
+static void FASTCALL dtdInit(DTD *, XML_Parser parser);
 
 /* do not call if parentParser != NULL */
-static void dtdReset(DTD *, XML_Parser parser);
-static void dtdDestroy(DTD *, XML_Parser parser);
+static void FASTCALL dtdReset(DTD *, XML_Parser parser);
+static void FASTCALL dtdDestroy(DTD *, XML_Parser parser);
 
-static int dtdCopy(DTD *newDtd, const DTD *oldDtd, XML_Parser parser);
+static int FASTCALL dtdCopy(DTD *newDtd, const DTD *oldDtd, XML_Parser parser);
 
-static int copyEntityTable(HASH_TABLE *, STRING_POOL *, const HASH_TABLE *,
-                           XML_Parser parser);
+static int FASTCALL copyEntityTable(HASH_TABLE *, STRING_POOL *,
+                                    const HASH_TABLE *, XML_Parser parser);
 
 #ifdef XML_DTD
-static void dtdSwap(DTD *, DTD *);
+static void FASTCALL dtdSwap(DTD *, DTD *);
 #endif /* XML_DTD */
 
-static NAMED *lookup(HASH_TABLE *table, KEY name, size_t createSize);
+static NAMED * FASTCALL
+lookup(HASH_TABLE *table, KEY name, size_t createSize);
 
-static void hashTableInit(HASH_TABLE *, XML_Memory_Handling_Suite *ms);
+static void FASTCALL
+hashTableInit(HASH_TABLE *, XML_Memory_Handling_Suite *ms);
 
-static void hashTableClear(HASH_TABLE *);
-static void hashTableDestroy(HASH_TABLE *);
-static void hashTableIterInit(HASH_TABLE_ITER *, const HASH_TABLE *);
-static NAMED *hashTableIterNext(HASH_TABLE_ITER *);
-static void poolInit(STRING_POOL *, XML_Memory_Handling_Suite *ms);
-static void poolClear(STRING_POOL *);
-static void poolDestroy(STRING_POOL *);
-static XML_Char *poolAppend(STRING_POOL *pool, const ENCODING *enc,
-                            const char *ptr, const char *end);
-static XML_Char *poolStoreString(STRING_POOL *pool, const ENCODING *enc,
-                                  const char *ptr, const char *end);
+static void FASTCALL hashTableClear(HASH_TABLE *);
+static void FASTCALL hashTableDestroy(HASH_TABLE *);
+static void FASTCALL hashTableIterInit(HASH_TABLE_ITER *, const HASH_TABLE *);
+static NAMED * FASTCALL hashTableIterNext(HASH_TABLE_ITER *);
+static void FASTCALL poolInit(STRING_POOL *, XML_Memory_Handling_Suite *ms);
+static void FASTCALL poolClear(STRING_POOL *);
+static void FASTCALL poolDestroy(STRING_POOL *);
+static XML_Char * FASTCALL
+poolAppend(STRING_POOL *pool, const ENCODING *enc,
+           const char *ptr, const char *end);
+static XML_Char * FASTCALL
+poolStoreString(STRING_POOL *pool, const ENCODING *enc,
+                const char *ptr, const char *end);
 
-static XML_Bool poolGrow(STRING_POOL *pool);
+static XML_Bool FASTCALL poolGrow(STRING_POOL *pool);
 
-static int nextScaffoldPart(XML_Parser parser);
-static XML_Content *build_model(XML_Parser parser);
+static int FASTCALL nextScaffoldPart(XML_Parser parser);
+static XML_Content * FASTCALL build_model(XML_Parser parser);
 
-static const XML_Char *poolCopyString(STRING_POOL *pool, const XML_Char *s);
-static const XML_Char *poolCopyStringN(STRING_POOL *pool, const XML_Char *s,
-                                       int n);
-static const XML_Char *poolAppendString(STRING_POOL *pool, const XML_Char *s);
-static ELEMENT_TYPE * getElementType(XML_Parser Paraser,
-                                     const ENCODING *enc,
-                                     const char *ptr,
-                                     const char *end);
+static const XML_Char * FASTCALL
+poolCopyString(STRING_POOL *pool, const XML_Char *s);
+static const XML_Char * FASTCALL
+poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n);
+static const XML_Char * FASTCALL
+poolAppendString(STRING_POOL *pool, const XML_Char *s);
+static ELEMENT_TYPE * FASTCALL
+getElementType(XML_Parser Paraser, const ENCODING *enc,
+               const char *ptr, const char *end);
 
-static void parserInit(XML_Parser parser, const XML_Char *encodingName);
+static void FASTCALL
+parserInit(XML_Parser parser, const XML_Char *encodingName);
 
 #define poolStart(pool) ((pool)->start)
 #define poolEnd(pool) ((pool)->ptr)
@@ -719,7 +727,7 @@
   return parser;
 }
 
-static void
+static void FASTCALL
 parserInit(XML_Parser parser, const XML_Char *encodingName)
 {
   processor = prologInitProcessor;
@@ -791,7 +799,7 @@
 }
 
 /* moves list of bindings to freeBindingList */
-static void
+static void FASTCALL
 moveToFreeBindingList(XML_Parser parser, BINDING *bindings)
 {
   while (bindings) {
@@ -966,7 +974,7 @@
   return parser;
 }
 
-static void
+static void FASTCALL
 destroyBindings(BINDING *bindings, XML_Parser parser)
 {
   for (;;) {
@@ -1639,7 +1647,7 @@
    processed, and not yet closed, we need to store tag->rawName in a more
    permanent location, since the parse buffer is about to be discarded.
 */
-static XML_Bool
+static XML_Bool FASTCALL
 storeRawNames(XML_Parser parser)
 {
   TAG *tag = tagStack;
@@ -1674,7 +1682,7 @@
   return XML_TRUE;
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 contentProcessor(XML_Parser parser,
                  const char *start,
                  const char *end,
@@ -1689,7 +1697,7 @@
   return result;
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 externalEntityInitProcessor(XML_Parser parser,
                             const char *start,
                             const char *end,
@@ -1702,7 +1710,7 @@
   return externalEntityInitProcessor2(parser, start, end, endPtr);
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 externalEntityInitProcessor2(XML_Parser parser,
                              const char *start,
                              const char *end,
@@ -1742,7 +1750,7 @@
   return externalEntityInitProcessor3(parser, start, end, endPtr);
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 externalEntityInitProcessor3(XML_Parser parser,
                              const char *start,
                              const char *end,
@@ -1779,7 +1787,7 @@
   return externalEntityContentProcessor(parser, start, end, endPtr);
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 externalEntityContentProcessor(XML_Parser parser,
                                const char *start,
                                const char *end,
@@ -1794,7 +1802,7 @@
   return result;
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 doContent(XML_Parser parser,
           int startTagLevel,
           const ENCODING *enc,
@@ -2248,7 +2256,7 @@
 /* If tagNamePtr is non-null, build a real list of attributes,
    otherwise just check the attributes for well-formedness.
 */
-static enum XML_Error
+static enum XML_Error FASTCALL
 storeAtts(XML_Parser parser, const ENCODING *enc,
           const char *attStr, TAG_NAME *tagNamePtr,
           BINDING **bindingsPtr)
@@ -2502,7 +2510,7 @@
   return XML_ERROR_NONE;
 }
 
-static int
+static int FASTCALL
 addBinding(XML_Parser parser, PREFIX *prefix, const ATTRIBUTE_ID *attId,
            const XML_Char *uri, BINDING **bindingsPtr)
 {
@@ -2557,7 +2565,7 @@
 /* The idea here is to avoid using stack for each CDATA section when
    the whole file is parsed with one call.
 */
-static enum XML_Error
+static enum XML_Error FASTCALL
 cdataSectionProcessor(XML_Parser parser,
                       const char *start,
                       const char *end,
@@ -2581,7 +2589,7 @@
 /* startPtr gets set to non-null is the section is closed, and to null if
    the section is not yet closed.
 */
-static enum XML_Error
+static enum XML_Error FASTCALL
 doCdataSection(XML_Parser parser,
                const ENCODING *enc,
                const char **startPtr,
@@ -2679,7 +2687,7 @@
 /* The idea here is to avoid using stack for each IGNORE section when
    the whole file is parsed with one call.
 */
-static enum XML_Error
+static enum XML_Error FASTCALL
 ignoreSectionProcessor(XML_Parser parser,
                        const char *start,
                        const char *end,
@@ -2697,7 +2705,7 @@
 /* startPtr gets set to non-null is the section is closed, and to null
    if the section is not yet closed.
 */
-static enum XML_Error
+static enum XML_Error FASTCALL
 doIgnoreSection(XML_Parser parser,
                 const ENCODING *enc,
                 const char **startPtr,
@@ -2753,7 +2761,7 @@
 
 #endif /* XML_DTD */
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 initializeEncoding(XML_Parser parser)
 {
   const char *s;
@@ -2782,7 +2790,7 @@
   return handleUnknownEncoding(parser, protocolEncodingName);
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 processXmlDecl(XML_Parser parser, int isGeneralTextEntity,
                const char *s, const char *next)
 {
@@ -2867,7 +2875,7 @@
   return XML_ERROR_NONE;
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 handleUnknownEncoding(XML_Parser parser, const XML_Char *encodingName)
 {
   if (unknownEncodingHandler) {
@@ -2906,7 +2914,7 @@
   return XML_ERROR_UNKNOWN_ENCODING;
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 prologInitProcessor(XML_Parser parser,
                     const char *s,
                     const char *end,
@@ -2921,7 +2929,7 @@
 
 #ifdef XML_DTD
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 externalParEntInitProcessor(XML_Parser parser,
                             const char *s,
                             const char *end,
@@ -2945,7 +2953,7 @@
   }
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 entityValueInitProcessor(XML_Parser parser,
                          const char *s,
                          const char *end,
@@ -2999,7 +3007,7 @@
   }
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 externalParEntProcessor(XML_Parser parser,
                         const char *s,
                         const char *end,
@@ -3040,7 +3048,7 @@
   return doProlog(parser, encoding, s, end, tok, next, nextPtr);
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 entityValueProcessor(XML_Parser parser,
                      const char *s,
                      const char *end,
@@ -3077,7 +3085,7 @@
 
 #endif /* XML_DTD */
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 prologProcessor(XML_Parser parser,
                 const char *s,
                 const char *end,
@@ -3088,7 +3096,7 @@
   return doProlog(parser, encoding, s, end, tok, next, nextPtr);
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 doProlog(XML_Parser parser,
          const ENCODING *enc,
          const char *s,
@@ -4020,7 +4028,7 @@
   /* not reached */
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 epilogProcessor(XML_Parser parser,
                 const char *s,
                 const char *end,
@@ -4082,7 +4090,7 @@
 
 #ifdef XML_DTD
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 processInternalParamEntity(XML_Parser parser, ENTITY *entity)
 {
   const char *s, *end, *next;
@@ -4106,7 +4114,7 @@
 
 #endif /* XML_DTD */
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 errorProcessor(XML_Parser parser,
                const char *s,
                const char *end,
@@ -4115,7 +4123,7 @@
   return errorCode;
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 storeAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata,
                     const char *ptr, const char *end,
                     STRING_POOL *pool)
@@ -4131,7 +4139,7 @@
   return XML_ERROR_NONE;
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 appendAttributeValue(XML_Parser parser, const ENCODING *enc, XML_Bool isCdata,
                      const char *ptr, const char *end,
                      STRING_POOL *pool)
@@ -4278,7 +4286,7 @@
   /* not reached */
 }
 
-static enum XML_Error
+static enum XML_Error FASTCALL
 storeEntityValue(XML_Parser parser,
                  const ENCODING *enc,
                  const char *entityTextPtr,
@@ -4443,7 +4451,7 @@
   return result;
 }
 
-static void
+static void FASTCALL
 normalizeLines(XML_Char *s)
 {
   XML_Char *p;
@@ -4466,7 +4474,7 @@
   *p = XML_T('\0');
 }
 
-static int
+static int FASTCALL
 reportProcessingInstruction(XML_Parser parser, const ENCODING *enc,
                             const char *start, const char *end)
 {
@@ -4495,7 +4503,7 @@
   return 1;
 }
 
-static int
+static int FASTCALL
 reportComment(XML_Parser parser, const ENCODING *enc,
               const char *start, const char *end)
 {
@@ -4517,7 +4525,7 @@
   return 1;
 }
 
-static void
+static void FASTCALL
 reportDefault(XML_Parser parser, const ENCODING *enc,
               const char *s, const char *end)
 {
@@ -4545,7 +4553,7 @@
 }
 
 
-static int
+static int FASTCALL
 defineAttribute(ELEMENT_TYPE *type, ATTRIBUTE_ID *attId, XML_Bool isCdata,
                 XML_Bool isId, const XML_Char *value, XML_Parser parser)
 {
@@ -4588,7 +4596,7 @@
   return 1;
 }
 
-static int
+static int FASTCALL
 setElementTypePrefix(XML_Parser parser, ELEMENT_TYPE *elementType)
 {
   const XML_Char *name;
@@ -4617,7 +4625,7 @@
   return 1;
 }
 
-static ATTRIBUTE_ID *
+static ATTRIBUTE_ID * FASTCALL
 getAttributeId(XML_Parser parser, const ENCODING *enc,
                const char *start, const char *end)
 {
@@ -4677,7 +4685,7 @@
 
 #define CONTEXT_SEP XML_T('\f')
 
-static const XML_Char *
+static const XML_Char * FASTCALL
 getContext(XML_Parser parser)
 {
   HASH_TABLE_ITER iter;
@@ -4745,7 +4753,7 @@
   return tempPool.start;
 }
 
-static XML_Bool
+static XML_Bool FASTCALL
 setContext(XML_Parser parser, const XML_Char *context)
 {
   const XML_Char *s = context;
@@ -4805,7 +4813,7 @@
   return XML_TRUE;
 }
 
-static void
+static void FASTCALL
 normalizePublicId(XML_Char *publicId)
 {
   XML_Char *p = publicId;
@@ -4827,7 +4835,7 @@
   *p = XML_T('\0');
 }
 
-static void
+static void FASTCALL
 dtdInit(DTD *p, XML_Parser parser)
 {
   XML_Memory_Handling_Suite *ms = &parser->m_mem;
@@ -4861,7 +4869,7 @@
 
 #ifdef XML_DTD
 
-static void
+static void FASTCALL
 dtdSwap(DTD *p1, DTD *p2)
 {
   DTD tem;
@@ -4872,7 +4880,7 @@
 
 #endif /* XML_DTD */
 
-static void
+static void FASTCALL
 dtdReset(DTD *p, XML_Parser parser)
 {
   HASH_TABLE_ITER iter;
@@ -4918,7 +4926,7 @@
   p->standalone = XML_FALSE;
 }
 
-static void
+static void FASTCALL
 dtdDestroy(DTD *p, XML_Parser parser)
 {
   HASH_TABLE_ITER iter;
@@ -4952,7 +4960,7 @@
 /* Do a deep copy of the DTD.  Return 0 for out of memory; non-zero otherwise.
    The new DTD has already been initialized.
 */
-static int
+static int FASTCALL
 dtdCopy(DTD *newDtd, const DTD *oldDtd, XML_Parser parser)
 {
   HASH_TABLE_ITER iter;
@@ -5082,7 +5090,7 @@
   return 1;
 }  /* End dtdCopy */
 
-static int
+static int FASTCALL
 copyEntityTable(HASH_TABLE *newTable,
                 STRING_POOL *newPool,
                 const HASH_TABLE *oldTable,
@@ -5151,7 +5159,7 @@
 
 #define INIT_SIZE 64
 
-static int
+static int FASTCALL
 keyeq(KEY s1, KEY s2)
 {
   for (; *s1 == *s2; s1++, s2++)
@@ -5160,7 +5168,7 @@
   return 0;
 }
 
-static unsigned long
+static unsigned long FASTCALL
 hash(KEY s)
 {
   unsigned long h = 0;
@@ -5169,7 +5177,7 @@
   return h;
 }
 
-static NAMED *
+static NAMED * FASTCALL
 lookup(HASH_TABLE *table, KEY name, size_t createSize)
 {
   size_t i;
@@ -5233,7 +5241,7 @@
   return table->v[i];
 }
 
-static void
+static void FASTCALL
 hashTableClear(HASH_TABLE *table)
 {
   size_t i;
@@ -5248,7 +5256,7 @@
   table->used = 0;
 }
 
-static void
+static void FASTCALL
 hashTableDestroy(HASH_TABLE *table)
 {
   size_t i;
@@ -5261,7 +5269,7 @@
     table->mem->free_fcn(table->v);
 }
 
-static void
+static void FASTCALL
 hashTableInit(HASH_TABLE *p, XML_Memory_Handling_Suite *ms)
 {
   p->size = 0;
@@ -5271,14 +5279,14 @@
   p->mem = ms;
 }
 
-static void
+static void FASTCALL
 hashTableIterInit(HASH_TABLE_ITER *iter, const HASH_TABLE *table)
 {
   iter->p = table->v;
   iter->end = iter->p + table->size;
 }
 
-static NAMED *
+static NAMED * FASTCALL
 hashTableIterNext(HASH_TABLE_ITER *iter)
 {
   while (iter->p != iter->end) {
@@ -5289,7 +5297,7 @@
   return NULL;
 }
 
-static void
+static void FASTCALL
 poolInit(STRING_POOL *pool, XML_Memory_Handling_Suite *ms)
 {
   pool->blocks = NULL;
@@ -5300,7 +5308,7 @@
   pool->mem = ms;
 }
 
-static void
+static void FASTCALL
 poolClear(STRING_POOL *pool)
 {
   if (!pool->freeBlocks)
@@ -5320,7 +5328,7 @@
   pool->end = NULL;
 }
 
-static void
+static void FASTCALL
 poolDestroy(STRING_POOL *pool)
 {
   BLOCK *p = pool->blocks;
@@ -5337,7 +5345,7 @@
   }
 }
 
-static XML_Char *
+static XML_Char * FASTCALL
 poolAppend(STRING_POOL *pool, const ENCODING *enc,
            const char *ptr, const char *end)
 {
@@ -5353,7 +5361,7 @@
   return pool->start;
 }
 
-static const XML_Char *
+static const XML_Char * FASTCALL
 poolCopyString(STRING_POOL *pool, const XML_Char *s)
 {
   do {
@@ -5365,7 +5373,7 @@
   return s;
 }
 
-static const XML_Char *
+static const XML_Char * FASTCALL
 poolCopyStringN(STRING_POOL *pool, const XML_Char *s, int n)
 {
   if (!pool->ptr && !poolGrow(pool))
@@ -5379,7 +5387,7 @@
   return s;
 }
 
-static const XML_Char *
+static const XML_Char * FASTCALL
 poolAppendString(STRING_POOL *pool, const XML_Char *s)
 {
   while (*s) {
@@ -5390,7 +5398,7 @@
   return pool->start;
 }
 
-static XML_Char *
+static XML_Char * FASTCALL
 poolStoreString(STRING_POOL *pool, const ENCODING *enc,
                 const char *ptr, const char *end)
 {
@@ -5402,7 +5410,7 @@
   return pool->start;
 }
 
-static XML_Bool
+static XML_Bool FASTCALL
 poolGrow(STRING_POOL *pool)
 {
   if (pool->freeBlocks) {
@@ -5464,7 +5472,7 @@
   return XML_TRUE;
 }
 
-static int
+static int FASTCALL
 nextScaffoldPart(XML_Parser parser)
 {
   CONTENT_SCAFFOLD * me;
@@ -5510,7 +5518,7 @@
   return next;
 }
 
-static void
+static void FASTCALL
 build_node(XML_Parser parser,
            int src_node,
            XML_Content *dest,
@@ -5547,7 +5555,7 @@
   }
 }
 
-static XML_Content *
+static XML_Content * FASTCALL
 build_model (XML_Parser parser)
 {
   XML_Content *ret;
@@ -5567,7 +5575,7 @@
   return ret;
 }
 
-static ELEMENT_TYPE *
+static ELEMENT_TYPE * FASTCALL
 getElementType(XML_Parser parser,
                const ENCODING *enc,
                const char *ptr,

Index: xmlrole.c
===================================================================
RCS file: /cvsroot/expat/expat/lib/xmlrole.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- xmlrole.c	22 Aug 2002 14:52:44 -0000	1.12
+++ xmlrole.c	5 Sep 2002 01:58:27 -0000	1.13
@@ -10,6 +10,7 @@
 #include <expat_config.h>
 #endif /* ndef COMPILED_FROM_DSP */
 
+#include "internal.h"
 #include "xmlrole.h"
 #include "ascii.h"
 
@@ -84,11 +85,11 @@
 #define setTopLevel(state) ((state)->handler = internalSubset)
 #endif /* not XML_DTD */
 
-typedef int PROLOG_HANDLER(PROLOG_STATE *state,
-                           int tok,
-                           const char *ptr,
-                           const char *end,
-                           const ENCODING *enc);
+typedef int FASTCALL PROLOG_HANDLER(PROLOG_STATE *state,
+                                    int tok,
+                                    const char *ptr,
+                                    const char *end,
+                                    const ENCODING *enc);
 
 static PROLOG_HANDLER
   prolog0, prolog1, prolog2,
@@ -108,9 +109,9 @@
   declClose,
   error;
 
-static int common(PROLOG_STATE *state, int tok);
+static int FASTCALL common(PROLOG_STATE *state, int tok);
 
-static int
+static int FASTCALL
 prolog0(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -147,7 +148,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 prolog1(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -178,7 +179,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 prolog2(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -199,7 +200,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 doctype0(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -217,7 +218,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 doctype1(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -247,7 +248,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 doctype2(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -264,7 +265,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 doctype3(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -281,7 +282,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 doctype4(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -301,7 +302,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 doctype5(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -318,7 +319,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 internalSubset(PROLOG_STATE *state,
                int tok,
                const char *ptr,
@@ -373,7 +374,7 @@
 
 #ifdef XML_DTD
 
-static int
+static int FASTCALL
 externalSubset0(PROLOG_STATE *state,
                 int tok,
                 const char *ptr,
@@ -386,7 +387,7 @@
   return externalSubset1(state, tok, ptr, end, enc);
 }
 
-static int
+static int FASTCALL
 externalSubset1(PROLOG_STATE *state,
                 int tok,
                 const char *ptr,
@@ -418,7 +419,7 @@
 
 #endif /* XML_DTD */
 
-static int
+static int FASTCALL
 entity0(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -438,7 +439,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity1(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -455,7 +456,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity2(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -483,7 +484,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity3(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -500,7 +501,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity4(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -517,7 +518,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity5(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -540,7 +541,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity6(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -558,7 +559,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity7(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -586,7 +587,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity8(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -603,7 +604,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity9(PROLOG_STATE *state,
         int tok,
         const char *ptr,
@@ -620,7 +621,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 entity10(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -637,7 +638,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 notation0(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -654,7 +655,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 notation1(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -678,7 +679,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 notation2(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -695,7 +696,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 notation3(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -713,7 +714,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 notation4(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -734,7 +735,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist0(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -752,7 +753,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist1(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -773,7 +774,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist2(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -814,7 +815,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist3(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -833,7 +834,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist4(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -853,7 +854,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist5(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -870,7 +871,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist6(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -887,7 +888,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist7(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -908,7 +909,7 @@
 }
 
 /* default value */
-static int
+static int FASTCALL
 attlist8(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -948,7 +949,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 attlist9(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -965,7 +966,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element0(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -983,7 +984,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element1(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -1013,7 +1014,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element2(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -1053,7 +1054,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element3(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -1078,7 +1079,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element4(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -1096,7 +1097,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element5(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -1117,7 +1118,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element6(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -1147,7 +1148,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 element7(PROLOG_STATE *state,
          int tok,
          const char *ptr,
@@ -1197,7 +1198,7 @@
 
 #ifdef XML_DTD
 
-static int
+static int FASTCALL
 condSect0(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -1221,7 +1222,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 condSect1(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -1239,7 +1240,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 condSect2(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -1258,7 +1259,7 @@
 
 #endif /* XML_DTD */
 
-static int
+static int FASTCALL
 declClose(PROLOG_STATE *state,
           int tok,
           const char *ptr,
@@ -1275,7 +1276,7 @@
   return common(state, tok);
 }
 
-static int
+static int FASTCALL
 error(PROLOG_STATE *state,
       int tok,
       const char *ptr,
@@ -1285,7 +1286,7 @@
   return XML_ROLE_NONE;
 }
 
-static int
+static int FASTCALL
 common(PROLOG_STATE *state, int tok)
 {
 #ifdef XML_DTD

Index: xmlrole.h
===================================================================
RCS file: /cvsroot/expat/expat/lib/xmlrole.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- xmlrole.h	22 Aug 2002 14:52:44 -0000	1.7
+++ xmlrole.h	5 Sep 2002 01:58:27 -0000	1.8
@@ -85,11 +85,11 @@
 };
 
 typedef struct prolog_state {
-  int (*handler)(struct prolog_state *state,
-                 int tok,
-                 const char *ptr,
-                 const char *end,
-                 const ENCODING *enc);
+  int FASTCALL (*handler)(struct prolog_state *state,
+                          int tok,
+                          const char *ptr,
+                          const char *end,
+                          const ENCODING *enc);
   unsigned level;
   int role_none;
 #ifdef XML_DTD