diff options
| author | Tyge Løvset <[email protected]> | 2021-01-02 09:14:44 +0100 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2021-01-02 09:14:44 +0100 |
| commit | 59f56b54744db309981065ccb63bbe68aff4f4ff (patch) | |
| tree | a1c43a390b0569d8605d4732123e905d0fd54700 /stc | |
| parent | 642473aa88cfdf4b4f7db1f30adf71d63c0befe6 (diff) | |
| download | STC-modified-59f56b54744db309981065ccb63bbe68aff4f4ff.tar.gz STC-modified-59f56b54744db309981065ccb63bbe68aff4f4ff.zip | |
Almost internal: Swapped toRaw(), fromRaw() template arguments in containers.
Diffstat (limited to 'stc')
| -rw-r--r-- | stc/cdeq.h | 12 | ||||
| -rw-r--r-- | stc/clist.h | 12 | ||||
| -rw-r--r-- | stc/cmap.h | 34 | ||||
| -rw-r--r-- | stc/cvec.h | 19 |
4 files changed, 39 insertions, 38 deletions
@@ -35,9 +35,9 @@ #define using_cdeq_3(X, Value, valueCompare) \
using_cdeq_4(X, Value, valueCompare, c_default_del)
#define using_cdeq_4(X, Value, valueCompare, valueDestroy) \
- using_cdeq_7(X, Value, valueCompare, valueDestroy, Value, c_default_to_raw, c_default_from_raw)
+ using_cdeq_7(X, Value, valueCompare, valueDestroy, Value, c_default_from_raw, c_default_to_raw)
#define using_cdeq_str() \
- using_cdeq_7(str, cstr_t, cstr_compare_raw, cstr_del, const char*, cstr_to_raw, cstr_from)
+ using_cdeq_7(str, cstr_t, cstr_compare_raw, cstr_del, const char*, cstr_from, cstr_to_raw)
#define typedefs_cdeq(X, Value, RawValue) \
typedef Value cdeq_##X##_value_t; \
@@ -48,7 +48,7 @@ cdeq_##X##_value_t *base, *data; \
} cdeq_##X
-#define using_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+#define using_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
typedefs_cdeq(X, Value, RawValue); \
\
STC_INLINE cdeq_##X \
@@ -199,13 +199,13 @@ STC_INLINE size_t \
cdeq_##X##_index(cdeq_##X deq, cdeq_##X##_iter_t it) {return it.ref - deq.data;} \
\
- _c_implement_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+ _c_implement_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
typedef cdeq_##X cdeq_##X##_t
/* -------------------------- IMPLEMENTATION ------------------------- */
#if !defined(STC_HEADER) || defined(STC_IMPLEMENTATION)
-#define _c_implement_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+#define _c_implement_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
\
STC_DEF void \
cdeq_##X##_push_n(cdeq_##X *self, const cdeq_##X##_input_t arr[], size_t n) { \
@@ -334,7 +334,7 @@ }
#else
-#define _c_implement_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw)
+#define _c_implement_cdeq_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw)
#endif
#if defined(_WIN32) && defined(_DLL)
diff --git a/stc/clist.h b/stc/clist.h index 77eac272..a7ac9b0b 100644 --- a/stc/clist.h +++ b/stc/clist.h @@ -63,9 +63,9 @@ using_clist_4(X, Value, valueCompare, c_default_del)
#define using_clist_4(X, Value, valueCompare, valueDestroy) \
using_clist_7(X, Value, valueCompare, valueDestroy, \
- Value, c_default_to_raw, c_default_from_raw)
+ Value, c_default_from_raw, c_default_to_raw)
#define using_clist_str() using_clist_7(str, cstr_t, cstr_compare_raw, cstr_del, \
- const char*, cstr_to_raw, cstr_from)
+ const char*, cstr_from, cstr_to_raw)
#define using_clist_types(X, Value) \
typedef Value clist_##X##_value_t; \
@@ -100,7 +100,7 @@ using_clist_types(void, int); STC_API size_t _clist_size(const clist_void* self);
#define _clist_node(X, vp) c_container_of(vp, clist_##X##_node_t, value)
-#define using_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+#define using_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
\
using_clist_types(X, Value); \
typedef RawValue clist_##X##_rawvalue_t; \
@@ -206,13 +206,13 @@ STC_API size_t _clist_size(const clist_void* self); STC_INLINE Value* \
clist_##X##_back(clist_##X* self) {return &self->last->value;} \
\
- _c_implement_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+ _c_implement_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
typedef clist_##X clist_##X##_t
/* -------------------------- IMPLEMENTATION ------------------------- */
#if !defined(STC_HEADER) || defined(STC_IMPLEMENTATION)
-#define _c_implement_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+#define _c_implement_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
\
STC_DEF clist_##X \
clist_##X##_clone(clist_##X list) { \
@@ -404,7 +404,7 @@ _clist_mergesort(clist_void_node_t *list, int (*cmp)(const void*, const void*)) }
#else
-#define _c_implement_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw)
+#define _c_implement_clist_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw)
#endif
#endif
@@ -80,17 +80,17 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t; #define using_cmap_6(X, Key, Mapped, mappedDel, keyEquals, keyHash) \
using_cmap_10(X, Key, Mapped, mappedDel, keyEquals, keyHash, \
- c_default_del, Key, c_default_to_raw, c_default_from_raw)
+ c_default_del, Key, c_default_from_raw, c_default_to_raw)
#define using_cmap_10(X, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw) \
+ keyDel, RawKey, keyFromRaw, keyToRaw) \
_c_typedef_CHASH(X, cmap, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, Mapped, c_default_from_raw)
+ keyDel, RawKey, keyFromRaw, keyToRaw, Mapped, c_default_from_raw)
#define using_cmap_12(X, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, RawMapped, mappedFromRaw) \
+ keyDel, RawKey, keyFromRaw, keyToRaw, RawMapped, mappedFromRaw) \
_c_typedef_CHASH(X, cmap, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, RawMapped, mappedFromRaw)
+ keyDel, RawKey, keyFromRaw, keyToRaw, RawMapped, mappedFromRaw)
/* cset: */
#define using_cset(...) \
@@ -104,12 +104,12 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t; #define using_cset_5(X, Key, keyEquals, keyHash, keyDel) \
using_cset_8(X, Key, keyEquals, keyHash, keyDel, \
- Key, c_default_to_raw, c_default_from_raw)
+ Key, c_default_from_raw, c_default_to_raw)
#define using_cset_8(X, Key, keyEqualsRaw, keyHashRaw, keyDel, \
- RawKey, keyToRaw, keyFromRaw) \
+ RawKey, keyFromRaw, keyToRaw) \
_c_typedef_CHASH(X, cset, Key, Key, void, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, void, c_default_from_raw)
+ keyDel, RawKey, keyFromRaw, keyToRaw, void, c_default_from_raw)
/* cset_str, cmap_str, cmap_strkey, cmap_strval: */
#define using_cset_str() \
@@ -117,7 +117,7 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t; #define using_cmap_str() \
_c_typedef_CHASH(str, cmap, cstr_t, cstr_t, cstr_del, cstr_equals_raw, cstr_hash_raw, \
- cstr_del, const char*, cstr_to_raw, cstr_from, const char*, cstr_from)
+ cstr_del, const char*, cstr_from, cstr_to_raw, const char*, cstr_from)
#define using_cmap_strkey(...) \
c_MACRO_OVERLOAD(using_cmap_strkey, __VA_ARGS__)
@@ -136,16 +136,16 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t; #define using_cmap_strval_4(X, Key, keyEquals, keyHash) \
using_cmap_strval_8(X, Key, keyEquals, keyHash, \
- c_default_del, Key, c_default_to_raw, c_default_from_raw)
+ c_default_del, Key, c_default_from_raw, c_default_to_raw)
-#define using_cmap_strval_8(X, Key, keyEquals, keyHash, keyDel, RawKey, keyToRaw, keyFromRaw) \
+#define using_cmap_strval_8(X, Key, keyEquals, keyHash, keyDel, RawKey, keyFromRaw, keyToRaw) \
_c_typedef_CHASH(X, cmap, Key, cstr_t, cstr_del, keyEquals, keyHash, \
- keyDel, RawKey, keyToRaw, keyFromRaw, const char*, cstr_from)
+ keyDel, RawKey, keyFromRaw, keyToRaw, const char*, cstr_from)
#define _c_declare_CHASH_strkey(X, ctype, Mapped, mappedDel) \
_c_typedef_CHASH(X, ctype, cstr_t, Mapped, mappedDel, cstr_equals_raw, cstr_hash_raw, \
- cstr_del, const char*, cstr_to_raw, cstr_from, Mapped, c_default_from_raw)
+ cstr_del, const char*, cstr_from, cstr_to_raw, Mapped, c_default_from_raw)
#define CSET_ONLY_cset(...) __VA_ARGS__
#define CSET_ONLY_cmap(...)
@@ -156,7 +156,7 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t; /* CHASH full: use 'void' for Mapped if ctype is cset */
#define _c_typedef_CHASH(X, ctype, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, RawMapped, mappedFromRaw) \
+ keyDel, RawKey, keyFromRaw, keyToRaw, RawMapped, mappedFromRaw) \
typedef Key ctype##_##X##_key_t; \
typedef Mapped ctype##_##X##_mapped_t; \
typedef RawKey ctype##_##X##_rawkey_t; \
@@ -305,14 +305,14 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t; STC_API uint32_t c_default_hash32(const void* data, size_t len); \
\
_c_implement_CHASH(X, ctype, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, RawMapped, mappedFromRaw) \
+ keyDel, RawKey, keyFromRaw, keyToRaw, RawMapped, mappedFromRaw) \
typedef ctype##_##X ctype##_##X##_t
/* -------------------------- IMPLEMENTATION ------------------------- */
#if !defined(STC_HEADER) || defined(STC_IMPLEMENTATION)
#define _c_implement_CHASH(X, ctype, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, RawMapped, mappedFromRaw) \
+ keyDel, RawKey, keyFromRaw, keyToRaw, RawMapped, mappedFromRaw) \
STC_DEF ctype##_##X \
ctype##_##X##_with_capacity(size_t cap) { \
ctype##_##X h = ctype##_inits; \
@@ -451,7 +451,7 @@ STC_DEF uint32_t c_default_hash32(const void* data, size_t len) { #else
#define _c_implement_CHASH(X, ctype, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, \
- keyDel, RawKey, keyToRaw, keyFromRaw, RawMapped, mappedFromRaw)
+ keyDel, RawKey, keyFromRaw, keyToRaw, RawMapped, mappedFromRaw)
#endif
#endif
@@ -35,9 +35,9 @@ #define using_cvec_3(X, Value, valueCompare) \
using_cvec_4(X, Value, valueCompare, c_default_del)
#define using_cvec_4(X, Value, valueCompare, valueDestroy) \
- using_cvec_7(X, Value, valueCompare, valueDestroy, Value, c_default_to_raw, c_default_from_raw)
+ using_cvec_7(X, Value, valueCompare, valueDestroy, Value, c_default_from_raw, c_default_to_raw)
#define using_cvec_str() \
- using_cvec_7(str, cstr_t, cstr_compare_raw, cstr_del, const char*, cstr_to_raw, cstr_from)
+ using_cvec_7(str, cstr_t, cstr_compare_raw, cstr_del, const char*, cstr_from, cstr_to_raw)
#define typedefs_cvec(X, Value, RawValue) \
typedef Value cvec_##X##_value_t; \
@@ -48,7 +48,7 @@ cvec_##X##_value_t* data; \
} cvec_##X
-#define using_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+#define using_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
typedefs_cvec(X, Value, RawValue); \
\
STC_INLINE cvec_##X \
@@ -188,13 +188,13 @@ STC_INLINE size_t \
cvec_##X##_index(cvec_##X vec, cvec_##X##_iter_t it) {return it.ref - vec.data;} \
\
- _c_implement_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+ _c_implement_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
typedef cvec_##X cvec_##X##_t
/* -------------------------- IMPLEMENTATION ------------------------- */
#if !defined(STC_HEADER) || defined(STC_IMPLEMENTATION)
-#define _c_implement_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw) \
+#define _c_implement_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw) \
\
STC_DEF void \
cvec_##X##_push_n(cvec_##X *self, const cvec_##X##_input_t arr[], size_t n) { \
@@ -256,11 +256,12 @@ STC_DEF cvec_##X##_iter_t \
cvec_##X##_insert_range_p(cvec_##X* self, cvec_##X##_value_t* pos, const cvec_##X##_value_t* first, const cvec_##X##_value_t* finish) { \
size_t len = finish - first, idx = pos - self->data, size = cvec_##X##_size(*self); \
+ cvec_##X##_iter_t it = {pos}; \
+ if (len == 0) return it; \
if (size + len > cvec_##X##_capacity(*self)) \
- cvec_##X##_reserve(self, 4 + (size + len)*3/2); \
+ cvec_##X##_reserve(self, 4 + (size + len)*3/2), \
+ it.ref = pos = self->data + idx; \
_cvec_size(self) += len; \
- pos = self->data + idx; \
- cvec_##X##_iter_t it = {pos}; \
memmove(pos + len, pos, (size - idx) * sizeof(Value)); \
while (first != finish) \
*pos++ = valueFromRaw(valueToRaw(first++)); \
@@ -300,7 +301,7 @@ }
#else
-#define _c_implement_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueToRaw, valueFromRaw)
+#define _c_implement_cvec_7(X, Value, valueCompareRaw, valueDestroy, RawValue, valueFromRaw, valueToRaw)
#endif
#if defined(_WIN32) && defined(_DLL)
|
