summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--examples/complex.c2
-rw-r--r--examples/replace.c2
-rw-r--r--stc/cdefs.h2
-rw-r--r--stc/cmap.h16
4 files changed, 16 insertions, 6 deletions
diff --git a/examples/complex.c b/examples/complex.c
index e0bc5200..0c3e5c38 100644
--- a/examples/complex.c
+++ b/examples/complex.c
@@ -33,5 +33,5 @@ int main() {
printf("value (%d, %d) is: %f\n", y, x, *carray2f_at(&table, y, x));
}
- c_destroy(cmap_s, &myMap); // free up everything!
+ c_dtor(cmap_s, &myMap); // free up everything!
} \ No newline at end of file
diff --git a/examples/replace.c b/examples/replace.c
index bcc4952e..c68a8940 100644
--- a/examples/replace.c
+++ b/examples/replace.c
@@ -29,5 +29,5 @@ int main ()
cstr_replace(&s, 22, 1, "!!!"); // "this is a short phrase!!!" (5)
printf("(5) %s\n", s.str);
- c_destroy(cstr, &s, &m);
+ c_dtor(cstr, &s, &m); // destroy
}
diff --git a/stc/cdefs.h b/stc/cdefs.h
index 6ec64bc7..f73eec06 100644
--- a/stc/cdefs.h
+++ b/stc/cdefs.h
@@ -97,7 +97,7 @@
while (__i != __last) = *__i++ = __val; \
} while (0)
-#define c_destroy(ctype, ...) do { \
+#define c_dtor(ctype, ...) do { \
struct ctype* __arr[] = {__VA_ARGS__}; \
for (size_t i=0; i<sizeof(__arr)/sizeof(__arr[0]); ++i) \
ctype##_destroy(__arr[i]); \
diff --git a/stc/cmap.h b/stc/cmap.h
index 10848cb6..ab2abf45 100644
--- a/stc/cmap.h
+++ b/stc/cmap.h
@@ -87,13 +87,18 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t;
#define typedef_cmap_6(X, Key, Mapped, valueDestroy, keyEquals, keyHash) \
typedef_cmap_10(X, Key, Mapped, valueDestroy, keyEquals, keyHash, \
- c_default_destroy, Key, c_default_to_raw, c_default_from_raw)
+ c_default_destroy, Key, c_default_to_raw, c_default_from_raw)
#define typedef_cmap_10(X, Key, Mapped, valueDestroy, keyEqualsRaw, keyHashRaw, \
- keyDestroy, RawKey, keyToRaw, keyFromRaw) \
+ keyDestroy, RawKey, keyToRaw, keyFromRaw) \
_c_typedef_CHASH(X, cmap, Key, Mapped, valueDestroy, keyEqualsRaw, keyHashRaw, \
keyDestroy, RawKey, keyToRaw, keyFromRaw, Mapped, c_default_from_raw)
+#define typedef_cmap_12(X, Key, Mapped, valueDestroy, keyEqualsRaw, keyHashRaw, \
+ keyDestroy, RawKey, keyToRaw, keyFromRaw, RawVal, valueFromRaw) \
+ _c_typedef_CHASH(X, cmap, Key, Mapped, valueDestroy, keyEqualsRaw, keyHashRaw, \
+ keyDestroy, RawKey, keyToRaw, keyFromRaw, RawVal, valueFromRaw)
+
/* cset: */
#define typedef_cset(...) \
c_MACRO_OVERLOAD(typedef_cset, __VA_ARGS__)
@@ -137,8 +142,13 @@ typedef struct {size_t idx; uint32_t hx;} cmap_bucket_t, cset_bucket_t;
typedef_cmap_strval_4(X, Key, c_default_equals, c_default_hash16)
#define typedef_cmap_strval_4(X, Key, keyEquals, keyHash) \
+ typedef_cmap_strval_8(X, Key, keyEquals, keyHash, \
+ c_default_destroy, Key, c_default_to_raw, c_default_from_raw)
+
+#define typedef_cmap_strval_8(X, Key, keyEquals, keyHash, keyDestroy, RawKey, keyToRaw, keyFromRaw) \
_c_typedef_CHASH(X, cmap, Key, cstr_t, cstr_destroy, keyEquals, keyHash, \
- c_default_destroy, Key, c_default_to_raw, c_default_from_raw, const char*, cstr)
+ keyDestroy, RawKey, keyToRaw, keyFromRaw, const char*, cstr)
+
#define _c_declare_CHASH_strkey(X, ctype, Mapped, valueDestroy) \
_c_typedef_CHASH(X, ctype, cstr_t, Mapped, valueDestroy, cstr_equals_raw, cstr_hash_raw, \