From: uz Date: Sun, 21 Aug 2011 13:16:14 +0000 (+0000) Subject: Implementation of StringPool has changed. X-Git-Tag: V2.13.3~222 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=bf889a1928a705ed5ec778e99ccbb8fbeca0a3dd;p=cc65 Implementation of StringPool has changed. git-svn-id: svn://svn.cc65.org/cc65/trunk@5240 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/ld65/spool.c b/src/ld65/spool.c index 9afb00f4d..d5ce7fe13 100644 --- a/src/ld65/spool.c +++ b/src/ld65/spool.c @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 2003 Ullrich von Bassewitz */ -/* Römerstrasse 52 */ -/* D-70794 Filderstadt */ -/* EMail: uz@cc65.org */ +/* (C) 2003-2011, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -44,7 +44,7 @@ -StringPool StrPool = STATIC_STRINGPOOL_INITIALIZER; +StringPool* StrPool = 0; @@ -57,10 +57,13 @@ StringPool StrPool = STATIC_STRINGPOOL_INITIALIZER; void InitStrPool (void) /* Initialize the string pool */ { + /* Allocate a string pool */ + StrPool = NewStringPool (1103); + /* We insert a first string here, which will have id zero. This means * that we can treat index zero later as invalid. - */ - SP_AddStr (&StrPool, ""); + */ + SP_AddStr (StrPool, ""); } diff --git a/src/ld65/spool.h b/src/ld65/spool.h index c22733a31..9c84f06b8 100644 --- a/src/ld65/spool.h +++ b/src/ld65/spool.h @@ -6,10 +6,10 @@ /* */ /* */ /* */ -/* (C) 2003-2008 Ullrich von Bassewitz */ -/* Roemerstrasse 52 */ -/* D-70794 Filderstadt */ -/* EMail: uz@cc65.org */ +/* (C) 2003-2011, Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ +/* D-70794 Filderstadt */ +/* EMail: uz@cc65.org */ /* */ /* */ /* This software is provided 'as-is', without any expressed or implied */ @@ -53,7 +53,7 @@ #define INVALID_STRING_ID 0U /* The string pool we're using */ -extern StringPool StrPool; +extern StringPool* StrPool; @@ -67,40 +67,40 @@ extern StringPool StrPool; INLINE unsigned GetStrBufId (const StrBuf* S) /* Return the id of the given string buffer */ { - return SP_Add (&StrPool, S); + return SP_Add (StrPool, S); } #else -# define GetStrBufId(S) SP_Add (&StrPool, (S)) +# define GetStrBufId(S) SP_Add (StrPool, (S)) #endif #if defined(HAVE_INLINE) INLINE unsigned GetStringId (const char* S) /* Return the id of the given string */ { - return SP_AddStr (&StrPool, S); + return SP_AddStr (StrPool, S); } #else -# define GetStringId(S) SP_AddStr (&StrPool, (S)) +# define GetStringId(S) SP_AddStr (StrPool, (S)) #endif #if defined(HAVE_INLINE) INLINE const StrBuf* GetStrBuf (unsigned Index) /* Convert a string index into a string */ { - return SP_Get (&StrPool, Index); + return SP_Get (StrPool, Index); } #else -# define GetStrBuf(Index) SP_Get (&StrPool, (Index)) +# define GetStrBuf(Index) SP_Get (StrPool, (Index)) #endif #if defined(HAVE_INLINE) INLINE const char* GetString (unsigned Index) /* Convert a string index into a string */ { - return SB_GetConstBuf (SP_Get (&StrPool, Index)); + return SB_GetConstBuf (SP_Get (StrPool, Index)); } #else -# define GetString(Index) SB_GetConstBuf (SP_Get (&StrPool, (Index))) +# define GetString(Index) SB_GetConstBuf (SP_Get (StrPool, (Index))) #endif void InitStrPool (void);