diff options
Diffstat (limited to 'C/Archive/7z/7zBuffer.c')
-rwxr-xr-x | C/Archive/7z/7zBuffer.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/C/Archive/7z/7zBuffer.c b/C/Archive/7z/7zBuffer.c new file mode 100755 index 00000000..3c4b71e8 --- /dev/null +++ b/C/Archive/7z/7zBuffer.c @@ -0,0 +1,29 @@ +/* 7zBuffer.c */ + +#include "7zBuffer.h" +#include "7zAlloc.h" + +void SzByteBufferInit(CSzByteBuffer *buffer) +{ + buffer->Capacity = 0; + buffer->Items = 0; +} + +int SzByteBufferCreate(CSzByteBuffer *buffer, size_t newCapacity, void * (*allocFunc)(size_t size)) +{ + buffer->Capacity = newCapacity; + if (newCapacity == 0) + { + buffer->Items = 0; + return 1; + } + buffer->Items = (Byte *)allocFunc(newCapacity); + return (buffer->Items != 0); +} + +void SzByteBufferFree(CSzByteBuffer *buffer, void (*freeFunc)(void *)) +{ + freeFunc(buffer->Items); + buffer->Items = 0; + buffer->Capacity = 0; +} |