summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTyge Løvset <[email protected]>2021-01-02 12:42:03 +0100
committerTyge Løvset <[email protected]>2021-01-02 12:42:03 +0100
commit5ef224ec36f91ec6b44f9574e2d832a5ce92750e (patch)
tree07a09af1e58703e7de8ae76469c5c0c4f7b988dd
parentfd40bc8cb9fa802bf8bac5afda7fa07851b514fd (diff)
downloadSTC-modified-5ef224ec36f91ec6b44f9574e2d832a5ce92750e.tar.gz
STC-modified-5ef224ec36f91ec6b44f9574e2d832a5ce92750e.zip
Added template parameter 'to_raw', in order to support clone functionality of map. Todo: change parameter order in shorthand using_-macros.
-rw-r--r--stc/cdeq.h2
-rw-r--r--stc/clist.h2
-rw-r--r--stc/cmap.h24
-rw-r--r--stc/cvec.h2
4 files changed, 14 insertions, 16 deletions
diff --git a/stc/cdeq.h b/stc/cdeq.h
index 00da9546..e543b37e 100644
--- a/stc/cdeq.h
+++ b/stc/cdeq.h
@@ -35,7 +35,7 @@
#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, c_default_from_raw, c_default_to_raw, Value)
+ using_cdeq_5(X, Value, valueCompare, valueDestroy, c_default_from_raw)
#define using_cdeq_5(X, Value, valueCompare, valueDestroy, valueClone) \
using_cdeq_7(X, Value, valueCompare, valueDestroy, valueClone, c_default_to_raw, Value)
#define using_cdeq_str() \
diff --git a/stc/clist.h b/stc/clist.h
index b12e3c90..e5171e1d 100644
--- a/stc/clist.h
+++ b/stc/clist.h
@@ -61,7 +61,7 @@
#define using_clist_3(X, Value, valueCompare) \
using_clist_4(X, Value, valueCompare, c_default_del)
#define using_clist_4(X, Value, valueCompare, valueDestroy) \
- using_clist_7(X, Value, valueCompare, valueDestroy, c_default_from_raw, c_default_to_raw, Value)
+ using_clist_5(X, Value, valueCompare, valueDestroy, c_default_from_raw)
#define using_clist_5(X, Value, valueCompare, valueDestroy, valueClone) \
using_clist_7(X, Value, valueCompare, valueDestroy, valueClone, c_default_to_raw, Value)
#define using_clist_str() \
diff --git a/stc/cmap.h b/stc/cmap.h
index 85ff4b9f..aa4396f7 100644
--- a/stc/cmap.h
+++ b/stc/cmap.h
@@ -85,12 +85,12 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t;
#define using_cmap_10(X, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, keyDel, \
keyFromRaw, keyToRaw, RawKey) \
_using_CHASH(X, cmap, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, keyDel, \
- keyFromRaw, keyToRaw, RawKey, Mapped, c_default_from_raw)
+ keyFromRaw, keyToRaw, RawKey, c_default_from_raw, c_default_to_raw, Mapped)
#define using_cmap_12(X, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, keyDel, \
keyFromRaw, keyToRaw, RawKey, RawMapped, mappedFromRaw) \
_using_CHASH(X, cmap, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, keyDel, \
- keyFromRaw, keyToRaw, RawKey, RawMapped, mappedFromRaw)
+ keyFromRaw, keyToRaw, RawKey, mappedFromRaw, c_default_to_raw, RawMapped)
/* cset: */
#define using_cset(...) \
@@ -106,16 +106,16 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t;
using_cset_8(X, Key, keyEquals, keyHash, keyDel, keyClone, c_default_to_raw, Key)
#define using_cset_8(X, Key, keyEqualsRaw, keyHashRaw, keyDel, keyFromRaw, keyToRaw, RawKey) \
- _using_CHASH(X, cset, Key, Key, void, keyEqualsRaw, keyHashRaw, keyDel, \
- keyFromRaw, keyToRaw, RawKey, void, c_default_from_raw)
+ _using_CHASH(X, cset, Key, Key, _UNUSED_, keyEqualsRaw, keyHashRaw, keyDel, \
+ keyFromRaw, keyToRaw, RawKey, _UNUSED_, _UNUSED_, void)
/* cset_str, cmap_str, cmap_strkey, cmap_strval: */
#define using_cset_str() \
- _using_CHASH_strkey(str, cset, cstr_t, void)
+ _using_CHASH_strkey(str, cset, cstr_t, _UNUSED_)
#define using_cmap_str() \
_using_CHASH(str, cmap, cstr_t, cstr_t, cstr_del, cstr_equals_raw, cstr_hash_raw, cstr_del, \
- cstr_from, cstr_to_raw, const char*, const char*, cstr_from)
+ cstr_from, cstr_to_raw, const char*, cstr_from, cstr_to_raw, const char*)
#define using_cmap_strkey(...) \
c_MACRO_OVERLOAD(using_cmap_strkey, __VA_ARGS__)
@@ -123,8 +123,8 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t;
#define using_cmap_strkey_2(X, Mapped) \
_using_CHASH_strkey(X, cmap, Mapped, c_default_del)
-#define using_cmap_strkey_3(X, Mapped, ValueDestroy) \
- _using_CHASH_strkey(X, cmap, Mapped, ValueDestroy)
+#define using_cmap_strkey_3(X, Mapped, mappedDel) \
+ _using_CHASH_strkey(X, cmap, Mapped, mappedDel)
#define using_cmap_strval(...) \
c_MACRO_OVERLOAD(using_cmap_strval, __VA_ARGS__)
@@ -140,12 +140,11 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t;
#define using_cmap_strval_8(X, Key, keyEquals, keyHash, keyDel, keyFromRaw, keyToRaw, RawKey) \
_using_CHASH(X, cmap, Key, cstr_t, cstr_del, keyEquals, keyHash, keyDel, \
- keyFromRaw, keyToRaw, RawKey, const char*, cstr_from)
-
+ keyFromRaw, keyToRaw, RawKey, cstr_from, cstr_to_raw, const char*)
#define _using_CHASH_strkey(X, ctype, Mapped, mappedDel) \
_using_CHASH(X, ctype, cstr_t, Mapped, mappedDel, cstr_equals_raw, cstr_hash_raw, cstr_del, \
- cstr_from, cstr_to_raw, const char*, Mapped, c_default_from_raw)
+ cstr_from, cstr_to_raw, const char*, c_default_from_raw, c_default_to_raw, Mapped)
#define CSET_ONLY_cset(...) __VA_ARGS__
#define CSET_ONLY_cmap(...)
@@ -154,9 +153,8 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t;
#define KEY_REF_cset(e) (*(e))
#define KEY_REF_cmap(e) (e)->first
-/* CHASH full: use 'void' for Mapped if ctype is cset */
#define _using_CHASH(X, ctype, Key, Mapped, mappedDel, keyEqualsRaw, keyHashRaw, keyDel, \
- keyFromRaw, keyToRaw, RawKey, RawMapped, mappedFromRaw) \
+ keyFromRaw, keyToRaw, RawKey, mappedFromRaw, mappedToRaw, RawMapped) \
typedef Key ctype##_##X##_key_t; \
typedef Mapped ctype##_##X##_mapped_t; \
typedef RawKey ctype##_##X##_rawkey_t; \
diff --git a/stc/cvec.h b/stc/cvec.h
index 39b92d8e..1fd6add5 100644
--- a/stc/cvec.h
+++ b/stc/cvec.h
@@ -35,7 +35,7 @@
#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, c_default_from_raw, c_default_to_raw, Value)
+ using_cvec_5(X, Value, valueCompare, valueDestroy, c_default_from_raw)
#define using_cvec_5(X, Value, valueCompare, valueDestroy, valueClone) \
using_cvec_7(X, Value, valueCompare, valueDestroy, valueClone, c_default_to_raw, Value)
#define using_cvec_str() \