mirror of
https://github.com/cc65/cc65.git
synced 2025-08-15 06:27:36 +00:00
Implementation of StringPool has changed.
git-svn-id: svn://svn.cc65.org/cc65/trunk@5242 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
@@ -863,6 +863,9 @@ int main (int argc, char* argv [])
|
|||||||
/* Initialize the cmdline module */
|
/* Initialize the cmdline module */
|
||||||
InitCmdLine (&argc, &argv, "ca65");
|
InitCmdLine (&argc, &argv, "ca65");
|
||||||
|
|
||||||
|
/* Initialize the string pool */
|
||||||
|
InitStrPool ();
|
||||||
|
|
||||||
/* Initialize the include search paths */
|
/* Initialize the include search paths */
|
||||||
InitIncludePaths ();
|
InitIncludePaths ();
|
||||||
|
|
||||||
|
@@ -45,7 +45,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
StringPool StrPool = STATIC_STRINGPOOL_INITIALIZER;
|
StringPool* StrPool = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ void WriteStrPool (void)
|
|||||||
unsigned I;
|
unsigned I;
|
||||||
|
|
||||||
/* Get the number of strings in the string pool */
|
/* Get the number of strings in the string pool */
|
||||||
unsigned Count = SP_GetCount (&StrPool);
|
unsigned Count = SP_GetCount (StrPool);
|
||||||
|
|
||||||
/* Tell the object file module that we're about to start the string pool */
|
/* Tell the object file module that we're about to start the string pool */
|
||||||
ObjStartStrPool ();
|
ObjStartStrPool ();
|
||||||
@@ -71,7 +71,7 @@ void WriteStrPool (void)
|
|||||||
|
|
||||||
/* Write the strings in id order */
|
/* Write the strings in id order */
|
||||||
for (I = 0; I < Count; ++I) {
|
for (I = 0; I < Count; ++I) {
|
||||||
ObjWriteBuf (SP_Get (&StrPool, I));
|
ObjWriteBuf (SP_Get (StrPool, I));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Done writing the string pool */
|
/* Done writing the string pool */
|
||||||
@@ -80,3 +80,11 @@ void WriteStrPool (void)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void InitStrPool (void)
|
||||||
|
/* Initialize the string pool */
|
||||||
|
{
|
||||||
|
StrPool = NewStringPool (1103);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern StringPool StrPool;
|
extern StringPool* StrPool;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -63,45 +63,48 @@ extern StringPool StrPool;
|
|||||||
INLINE unsigned GetStrBufId (const StrBuf* S)
|
INLINE unsigned GetStrBufId (const StrBuf* S)
|
||||||
/* Return the id of the given string buffer */
|
/* Return the id of the given string buffer */
|
||||||
{
|
{
|
||||||
return SP_Add (&StrPool, S);
|
return SP_Add (StrPool, S);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# define GetStrBufId(S) SP_Add (&StrPool, (S))
|
# define GetStrBufId(S) SP_Add (StrPool, (S))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_INLINE)
|
#if defined(HAVE_INLINE)
|
||||||
INLINE unsigned GetStringId (const char* S)
|
INLINE unsigned GetStringId (const char* S)
|
||||||
/* Return the id of the given string */
|
/* Return the id of the given string */
|
||||||
{
|
{
|
||||||
return SP_AddStr (&StrPool, S);
|
return SP_AddStr (StrPool, S);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# define GetStringId(S) SP_AddStr (&StrPool, (S))
|
# define GetStringId(S) SP_AddStr (StrPool, (S))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_INLINE)
|
#if defined(HAVE_INLINE)
|
||||||
INLINE const StrBuf* GetStrBuf (unsigned Index)
|
INLINE const StrBuf* GetStrBuf (unsigned Index)
|
||||||
/* Convert a string index into a string */
|
/* Convert a string index into a string */
|
||||||
{
|
{
|
||||||
return SP_Get (&StrPool, Index);
|
return SP_Get (StrPool, Index);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# define GetStrBuf(Index) SP_Get (&StrPool, (Index))
|
# define GetStrBuf(Index) SP_Get (StrPool, (Index))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_INLINE)
|
#if defined(HAVE_INLINE)
|
||||||
INLINE const char* GetString (unsigned Index)
|
INLINE const char* GetString (unsigned Index)
|
||||||
/* Convert a string index into a string */
|
/* Convert a string index into a string */
|
||||||
{
|
{
|
||||||
return SB_GetConstBuf (SP_Get (&StrPool, Index));
|
return SB_GetConstBuf (SP_Get (StrPool, Index));
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
# define GetString(Index) SB_GetConstBuf (SP_Get (&StrPool, (Index)))
|
# define GetString(Index) SB_GetConstBuf (SP_Get (StrPool, (Index)))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void WriteStrPool (void);
|
void WriteStrPool (void);
|
||||||
/* Write the string pool to the object file */
|
/* Write the string pool to the object file */
|
||||||
|
|
||||||
|
void InitStrPool (void);
|
||||||
|
/* Initialize the string pool */
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* End of spool.h */
|
/* End of spool.h */
|
||||||
|
Reference in New Issue
Block a user