From 6413a9c95c703631ec5c83b3cf84cbff79c27aa3 Mon Sep 17 00:00:00 2001 From: Maciej Samborski Date: Sat, 12 Oct 2024 14:42:24 +0200 Subject: [PATCH] Added generic daPush macro and removed unused macros --- da.h | 7 ++++--- example.c | 32 +++++++++++++++----------------- 2 files changed, 19 insertions(+), 20 deletions(-) diff --git a/da.h b/da.h index 7f77098..3d297ba 100644 --- a/da.h +++ b/da.h @@ -43,9 +43,10 @@ void daBzero(dynarr da); #define dynarr(type) type * #define daCreate(type, cap) _daCreate(cap, sizeof(type), 0) -#define daPush(da, item) _daPush((void *)&da, &item) -#define daPushLit(da, item) _daPushLit((void *)&da, item) -#define daPushStr(da, str) _daPushStr((void *)&da, str) +#define daPush(da, item) _Generic((item), \ + char *: _daPushStr, \ + default: _daPushLit \ + )((void *)&da, item) #define daPop(da, item) _daPop(da, &item) #endif // DA_H_ diff --git a/example.c b/example.c index c1285f2..ff50085 100644 --- a/example.c +++ b/example.c @@ -1,5 +1,3 @@ -#include - #define DA_IMPLEMENTATION #include "da.h" @@ -49,13 +47,13 @@ int main(void) dynarr(unsigned short) da = resultGeneric(dynarr(unsigned short), gr); - daPushLit(da, 69); - daPushLit(da, 420); - daPushLit(da, 1337); - daPushLit(da, 34); - daPushLit(da, 35); + daPush(da, 69); + daPush(da, 420); + daPush(da, 1337); + daPush(da, 34); + daPush(da, 35); - daPushLit(da, 1667); + daPush(da, 1667); unsigned short x = 0; @@ -72,14 +70,14 @@ int main(void) dynarr(char) da2 = daCreate(char, 1).val; - daPushLit(da2, 'H'); - daPushLit(da2, 'i'); - daPushLit(da2, ' '); - daPushLit(da2, 'm'); - daPushLit(da2, 'o'); - daPushLit(da2, 'm'); - daPushLit(da2, '?'); - daPushLit(da2, '?'); + daPush(da2, 'H'); + daPush(da2, 'i'); + daPush(da2, ' '); + daPush(da2, 'm'); + daPush(da2, 'o'); + daPush(da2, 'm'); + daPush(da2, '?'); + daPush(da2, '?'); *(char *)daGetRef(da2, 6) = '!'; @@ -96,7 +94,7 @@ int main(void) dynarr(char *) da3 = daCreate(char *, 1).val; for (size_t i = 0; i < 1000000; ++i) { - daPushStr(da3, "Test"); + daPush(da3, "Test"); } char * str;