diff options
| author | Tyge Løvset <[email protected]> | 2020-09-20 09:03:23 +0200 |
|---|---|---|
| committer | Tyge Løvset <[email protected]> | 2020-09-20 09:03:23 +0200 |
| commit | 84dd4fe2a1e0768b199bebcbb9d59e9f7f57d3cc (patch) | |
| tree | b8680ea0e7bbf3a63519cd819cd1b63e40951368 | |
| parent | 518fe31a0c1705a8c8342c5022c061afe90bc4e7 (diff) | |
| download | STC-modified-84dd4fe2a1e0768b199bebcbb9d59e9f7f57d3cc.tar.gz STC-modified-84dd4fe2a1e0768b199bebcbb9d59e9f7f57d3cc.zip | |
Cleanup and renamed c_del_() to c_del() again.
| -rw-r--r-- | examples/replace.c | 2 | ||||
| -rw-r--r-- | stc/cdefs.h | 36 | ||||
| -rw-r--r-- | stc/cstr.h | 6 | ||||
| -rw-r--r-- | stc/cvec.h | 2 |
4 files changed, 18 insertions, 28 deletions
diff --git a/examples/replace.c b/examples/replace.c index c4929864..5c5192e2 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_del_(cstr, &s, &m); // destroy
+ c_del(cstr, &s, &m); // destroy
}
diff --git a/stc/cdefs.h b/stc/cdefs.h index 9dc496d1..ebf24738 100644 --- a/stc/cdefs.h +++ b/stc/cdefs.h @@ -29,26 +29,21 @@ #include <assert.h>
#if defined(_MSC_VER)
-#define STC_FORCE_INLINE static __forceinline
+ #define STC_FORCE_INLINE static __forceinline
#elif defined(__GNUC__) || defined(__clang__)
-#define STC_FORCE_INLINE static inline __attribute((always_inline))
+ #define STC_FORCE_INLINE static inline __attribute((always_inline))
#else
-#define STC_FORCE_INLINE static inline
+ #define STC_FORCE_INLINE static inline
#endif
#define STC_INLINE static inline
#if defined(STC_HEADER) || defined(STC_IMPLEMENTATION)
-#define STC_API extern
+ #define STC_API extern
#else
-#define STC_API STC_INLINE
-#endif
-
-#if defined(_MSC_VER) || defined(__GNUC__) || defined(__clang__) || defined(__TINYC__)
-#define c_UNION(...) union {__VA_ARGS__;}
-#else
-#define c_UNION(x, ...) x
+ #define STC_API STC_INLINE
#endif
+enum {_c_max_buffer = 512};
/* Macro overloading feature support: https://rextester.com/ONP80107 */
#define _c_CAT( A, B ) A ## B
#define _c_EXPAND(...) __VA_ARGS__
@@ -59,25 +54,20 @@ #define _c_OVERLOAD_SELECT(NAME, NUM) _c_CAT( NAME ## _, NUM)
#define c_MACRO_OVERLOAD(NAME, ...) _c_OVERLOAD_SELECT(NAME, _c_VA_ARG_SIZE(__VA_ARGS__))(__VA_ARGS__)
-/*#define FOO(...) c_MACRO_OVERLOAD(FOO, __VA_ARGS__) #define FOO_1(x) "1" #define FOO_2(x,y) "2"*/
-
-#define c_new(T) ((T *) malloc(sizeof(T)))
-#define c_new_n(T, n) ((T *) malloc(sizeof(T) * (n)))
#define c_static_assert(cond, msg) typedef char static_assert_##msg[(cond) ? 1 : -1]
#define c_container_of(ptr, type, member) \
- ((type *)((char *)(ptr) - offsetof(type, member)))
-
-#define c_max_alloca (512)
-#define c_swap(T, x, y) do { T __t = x; x = y; y = __t; } while (0)
-
-#define c_default_from_raw(x) (x)
-#define c_default_to_raw(ptr) (*(ptr))
+ ((type *)((char *)(ptr) - offsetof(type, member)))
+#define c_new(T) ((T *) malloc(sizeof(T)))
+#define c_new_n(T, n) ((T *) malloc(sizeof(T) * (n)))
+#define c_swap(T, x, y) do { T __t = x; x = y; y = __t; } while (0)
#define c_no_compare(x, y) (0)
#define c_mem_equals(x, y) (memcmp(x, y, sizeof(*(y))) == 0)
#define c_default_equals(x, y) (*(x) == *(y))
#define c_default_less(x, y) (*(x) < *(y))
#define c_less_compare(less, x, y) (less(x, y) ? -1 : less(y, x))
#define c_default_compare(x, y) c_less_compare(c_default_less, x, y)
+#define c_default_from_raw(x) (x)
+#define c_default_to_raw(ptr) (*(ptr))
#define c_default_del(ptr) ((void) (ptr))
#define c_foreach(...) c_MACRO_OVERLOAD(c_foreach, __VA_ARGS__)
@@ -99,7 +89,7 @@ ctype##_push_n(self, __arr, sizeof(__arr)/sizeof(__arr[0])); \
} while (0)
-#define c_del_(ctype, ...) do { \
+#define c_del(ctype, ...) do { \
struct ctype* __arr[] = {__VA_ARGS__}; \
for (size_t i=0; i<sizeof(__arr)/sizeof(__arr[0]); ++i) \
ctype##_del(__arr[i]); \
@@ -304,11 +304,11 @@ STC_INLINE void _cstr_internal_move(cstr_t* self, size_t pos1, size_t pos2) { STC_API void
cstr_replace_n(cstr_t* self, size_t pos, size_t len, const char* str, size_t n) {
- char buf[c_max_alloca];
- char* xstr = (char *) memcpy(n > c_max_alloca ? malloc(n) : buf, str, n);
+ char buf[_c_max_buffer];
+ char* xstr = (char *) memcpy(n > _c_max_buffer ? malloc(n) : buf, str, n);
_cstr_internal_move(self, pos + len, pos + n);
memcpy(&self->str[pos], xstr, n);
- if (n > c_max_alloca) free(xstr);
+ if (n > _c_max_buffer) free(xstr);
}
STC_API void
@@ -240,7 +240,7 @@ \
STC_API cvec_##X##_iter_t \
cvec_##X##_insert_range_p(cvec_##X* self, cvec_##X##_value_t* pos, cvec_##X##_value_t* first, cvec_##X##_value_t* finish) { \
- enum {max_buf = c_max_alloca / sizeof(Value) + 1}; \
+ enum {max_buf = _c_max_buffer / sizeof(Value) + 1}; \
Value buf[max_buf]; \
size_t len = finish - first, idx = pos - self->data, size = cvec_size(*self); \
cvec_##X##_value_t* xbuf = (len > max_buf ? c_new_n(cvec_##X##_value_t, len) : &buf[0]); \
|
