diff options
Diffstat (limited to 'src/lib/lib7z/7zBuf.c')
-rw-r--r-- | src/lib/lib7z/7zBuf.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/lib/lib7z/7zBuf.c b/src/lib/lib7z/7zBuf.c new file mode 100644 index 00000000000..14e7f4e2b92 --- /dev/null +++ b/src/lib/lib7z/7zBuf.c @@ -0,0 +1,36 @@ +/* 7zBuf.c -- Byte Buffer +2008-03-28 +Igor Pavlov +Public domain */ + +#include "7zBuf.h" + +void Buf_Init(CBuf *p) +{ + p->data = 0; + p->size = 0; +} + +int Buf_Create(CBuf *p, size_t size, ISzAlloc *alloc) +{ + p->size = 0; + if (size == 0) + { + p->data = 0; + return 1; + } + p->data = (Byte *)alloc->Alloc(alloc, size); + if (p->data != 0) + { + p->size = size; + return 1; + } + return 0; +} + +void Buf_Free(CBuf *p, ISzAlloc *alloc) +{ + alloc->Free(alloc, p->data); + p->data = 0; + p->size = 0; +} |