diff options
Diffstat (limited to 'third_party/lzma_sdk/Archive/7z/7zBuffer.c')
-rw-r--r-- | third_party/lzma_sdk/Archive/7z/7zBuffer.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/third_party/lzma_sdk/Archive/7z/7zBuffer.c b/third_party/lzma_sdk/Archive/7z/7zBuffer.c new file mode 100644 index 0000000..3c4b71e --- /dev/null +++ b/third_party/lzma_sdk/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; +} |