FFstrbuf: make ffStrbufInit inlinable; add ffStrbufInitMove

This commit is contained in:
李通洲
2023-03-22 15:32:25 +08:00
parent dcd0f8d3f6
commit b15e68658f
2 changed files with 19 additions and 2 deletions
+14 -1
View File
@@ -3,7 +3,7 @@
#include <ctype.h>
#include <inttypes.h>
static char* CHAR_NULL_PTR = "";
char* CHAR_NULL_PTR = "";
void ffStrbufInitA(FFstrbuf* strbuf, uint32_t allocate)
{
@@ -22,6 +22,19 @@ void ffStrbufInitCopy(FFstrbuf* strbuf, const FFstrbuf* src)
ffStrbufAppend(strbuf, src);
}
void ffStrbufInitMove(FFstrbuf* strbuf, FFstrbuf* src)
{
if (src)
{
strbuf->allocated = src->allocated;
strbuf->chars = src->chars;
strbuf->length = src->length;
ffStrbufInit(src);
}
else
ffStrbufInit(strbuf);
}
void ffStrbufInitF(FFstrbuf* strbuf, const char* format, ...)
{
assert(format != NULL);
+5 -1
View File
@@ -31,6 +31,7 @@ typedef struct FFstrbuf
void ffStrbufInitA(FFstrbuf* strbuf, uint32_t allocate);
void ffStrbufInitCopy(FFstrbuf* strbuf, const FFstrbuf* src);
void ffStrbufInitMove(FFstrbuf* strbuf, FFstrbuf* src);
void ffStrbufInitF(FFstrbuf* strbuf, const char* format, ...);
void ffStrbufInitVF(FFstrbuf* strbuf, const char* format, va_list arguments);
@@ -115,7 +116,10 @@ static inline void ffStrbufSetS(FFstrbuf* strbuf, const char* value)
static inline void ffStrbufInit(FFstrbuf* strbuf)
{
ffStrbufInitA(strbuf, 0);
extern char* CHAR_NULL_PTR;
strbuf->allocated = 0;
strbuf->length = 0;
strbuf->chars = CHAR_NULL_PTR;
}
static inline void ffStrbufInitNS(FFstrbuf* strbuf, uint32_t length, const char* str)