diff --git a/src/util/FFlist.h b/src/util/FFlist.h index eccd30b55..ce045be98 100644 --- a/src/util/FFlist.h +++ b/src/util/FFlist.h @@ -58,6 +58,23 @@ static inline void ffListSort(FFlist* list, int(*compar)(const void*, const void qsort(list->data, list->length, list->elementSize, compar); } +// Move the contents of `src` into `list`, and left `src` empty +static inline void ffListInitMove(FFlist* list, FFlist* src) +{ + if (src) + { + list->elementSize = src->elementSize; + list->capacity = src->capacity; + list->length = src->length; + list->data = list->data; + ffListInit(src, list->elementSize); + } + else + { + ffListInit(list, 0); + } +} + static inline void ffListDestroy(FFlist* list) { if (!list->data) return; diff --git a/src/util/FFstrbuf.c b/src/util/FFstrbuf.c index eccea2341..c05a7fa36 100644 --- a/src/util/FFstrbuf.c +++ b/src/util/FFstrbuf.c @@ -22,19 +22,6 @@ 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 ffStrbufInitVF(FFstrbuf* strbuf, const char* format, va_list arguments) { assert(format != NULL); diff --git a/src/util/FFstrbuf.h b/src/util/FFstrbuf.h index 32eb3da8c..c47719679 100644 --- a/src/util/FFstrbuf.h +++ b/src/util/FFstrbuf.h @@ -28,9 +28,9 @@ typedef struct FFstrbuf char* chars; } FFstrbuf; +static inline void ffStrbufInit(FFstrbuf* strbuf); void ffStrbufInitA(FFstrbuf* strbuf, uint32_t allocate); void ffStrbufInitCopy(FFstrbuf* __restrict strbuf, const FFstrbuf* __restrict src); -void ffStrbufInitMove(FFstrbuf* strbuf, FFstrbuf* src); void ffStrbufInitVF(FFstrbuf* strbuf, const char* format, va_list arguments); void ffStrbufEnsureFree(FFstrbuf* strbuf, uint32_t free); @@ -104,6 +104,20 @@ FF_C_NODISCARD static inline FFstrbuf ffStrbufCreateCopy(const FFstrbuf* src) return strbuf; } +// Move the content of `src` into `strbuf`, and left `src` empty +static inline 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); +} + FF_C_NODISCARD static inline FFstrbuf ffStrbufCreateMove(FFstrbuf* src) { FFstrbuf strbuf;