]> git.sur5r.net Git - cc65/commitdiff
Implementation of StringPool has changed.
authoruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 21 Aug 2011 13:16:14 +0000 (13:16 +0000)
committeruz <uz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Sun, 21 Aug 2011 13:16:14 +0000 (13:16 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@5240 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/ld65/spool.c
src/ld65/spool.h

index 9afb00f4dbcf4349e5208d0ef83643d441705168..d5ce7fe130075c21a71e3b828f11ec36e9d3cee7 100644 (file)
@@ -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, "<invalid message #0>");
+     */
+    SP_AddStr (StrPool, "<invalid message #0>");
 }
 
 
index c22733a310ddd0926161731934094a3c5aec78a1..9c84f06b847ee752469e326602074bc8c0b470e4 100644 (file)
@@ -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);