Browse Source

Imports for Buffer

Kajetan Johannes Hammerle 11 months ago
parent
commit
5b2e25b918
3 changed files with 27 additions and 23 deletions
  1. 11 2
      include/core/Buffer.h
  2. 5 5
      src/Buffer.c
  3. 11 16
      test/modules/BufferTests.c

+ 11 - 2
include/core/Buffer.h

@@ -12,8 +12,17 @@ typedef struct {
 void coreInitBuffer(CoreBuffer* b);
 void coreDestroyBuffer(CoreBuffer* b);
 void coreAddSizedBufferData(CoreBuffer* b, const void* data, size_t size);
-#define coreAddBufferData(buffer, data)                                        \
-    coreAddSizedBufferData(buffer, data, sizeof(*data))
+#define coreAddTypedBufferData(buffer, type, ...)                              \
+    coreAddSizedBufferData(buffer, &(type){__VA_ARGS__}, sizeof(type))
 void coreClearBuffer(CoreBuffer* b);
 
+#ifdef IMPORT_CORE
+#define Buffer CoreBuffer
+#define initBuffer coreInitBuffer
+#define destroyBuffer coreDestroyBuffer
+#define addSizedBufferData coreAddSizedBufferData
+#define addTypedBufferData coreAddTypedBufferData
+#define clearBuffer coreClearBuffer
+#endif
+
 #endif

+ 5 - 5
src/Buffer.c

@@ -4,26 +4,26 @@
 
 #include "core/Utility.h"
 
-void coreInitBuffer(CoreBuffer* b) {
+void initBuffer(Buffer* b) {
     b->buffer = nullptr;
     b->capacity = 0;
     b->size = 0;
 }
 
-void coreDestroyBuffer(CoreBuffer* b) {
+void destroyBuffer(Buffer* b) {
     coreFree(b->buffer);
     coreInitBuffer(b);
 }
 
-void coreAddSizedBufferData(CoreBuffer* b, const void* data, size_t size) {
+void addSizedBufferData(Buffer* b, const void* data, size_t size) {
     while(b->size + size >= b->capacity) {
         b->capacity = b->capacity == 0 ? 8 : (b->capacity * 5) / 4;
-        b->buffer = coreReallocate(b->buffer, b->capacity);
+        b->buffer = cReallocate(b->buffer, b->capacity);
     }
     memcpy(b->buffer + b->size, data, size);
     b->size += size;
 }
 
-void coreClearBuffer(CoreBuffer* b) {
+void clearBuffer(Buffer* b) {
     b->size = 0;
 }

+ 11 - 16
test/modules/BufferTests.c

@@ -5,25 +5,20 @@ static const size_t SIZE_TYPES =
     sizeof(int) + sizeof(long) + sizeof(float) + sizeof(double);
 
 void testBuffer(bool light) {
-    CoreBuffer buffer;
-    coreInitBuffer(&buffer);
+    Buffer buffer;
+    initBuffer(&buffer);
     size_t limit = light ? 1000 : 100000;
     for(size_t i = 0; i < limit; i++) {
-        int a = 5;
-        long b = 5l;
-        float c = 5.0f;
-        double d = 5.0;
-        coreAddBufferData(&buffer, &a);
-        coreAddBufferData(&buffer, &b);
-        coreAddBufferData(&buffer, &c);
-        coreAddBufferData(&buffer, &d);
+        addTypedBufferData(&buffer, int, 5);
+        addTypedBufferData(&buffer, long, 51);
+        addTypedBufferData(&buffer, float, 5.0f);
+        addTypedBufferData(&buffer, double, 5.0);
     }
-    CORE_TEST_SIZE(SIZE_TYPES * limit, buffer.size);
+    TEST_SIZE(SIZE_TYPES * limit, buffer.size);
 
-    coreClearBuffer(&buffer);
-    long l = 20;
-    coreAddBufferData(&buffer, &l);
-    CORE_TEST_SIZE(sizeof(l), buffer.size);
+    clearBuffer(&buffer);
+    addTypedBufferData(&buffer, long, 20);
+    TEST_SIZE(sizeof(long), buffer.size);
 
-    coreDestroyBuffer(&buffer);
+    destroyBuffer(&buffer);
 }