Buffer.c 611 B

1234567891011121314151617181920212223242526272829
  1. #include "core/Buffer.h"
  2. #include <string.h>
  3. #include "core/Utility.h"
  4. void initBuffer(Buffer* b) {
  5. b->buffer = nullptr;
  6. b->capacity = 0;
  7. b->size = 0;
  8. }
  9. void destroyBuffer(Buffer* b) {
  10. coreFree(b->buffer);
  11. initBuffer(b);
  12. }
  13. void addSizedBufferData(Buffer* b, const void* data, size_t size) {
  14. while(b->size + size >= b->capacity) {
  15. b->capacity = b->capacity == 0 ? 8 : (b->capacity * 5) / 4;
  16. b->buffer = coreReallocate(b->buffer, b->capacity);
  17. }
  18. memcpy(b->buffer + b->size, data, size);
  19. b->size += size;
  20. }
  21. void clearBuffer(Buffer* b) {
  22. b->size = 0;
  23. }