diff options
Diffstat (limited to 'C/7zBuf.c')
-rw-r--r-- | C/7zBuf.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/C/7zBuf.c b/C/7zBuf.c new file mode 100644 index 0000000..8865c32 --- /dev/null +++ b/C/7zBuf.c | |||
@@ -0,0 +1,36 @@ | |||
1 | /* 7zBuf.c -- Byte Buffer | ||
2 | 2017-04-03 : Igor Pavlov : Public domain */ | ||
3 | |||
4 | #include "Precomp.h" | ||
5 | |||
6 | #include "7zBuf.h" | ||
7 | |||
8 | void Buf_Init(CBuf *p) | ||
9 | { | ||
10 | p->data = 0; | ||
11 | p->size = 0; | ||
12 | } | ||
13 | |||
14 | int Buf_Create(CBuf *p, size_t size, ISzAllocPtr alloc) | ||
15 | { | ||
16 | p->size = 0; | ||
17 | if (size == 0) | ||
18 | { | ||
19 | p->data = 0; | ||
20 | return 1; | ||
21 | } | ||
22 | p->data = (Byte *)ISzAlloc_Alloc(alloc, size); | ||
23 | if (p->data) | ||
24 | { | ||
25 | p->size = size; | ||
26 | return 1; | ||
27 | } | ||
28 | return 0; | ||
29 | } | ||
30 | |||
31 | void Buf_Free(CBuf *p, ISzAllocPtr alloc) | ||
32 | { | ||
33 | ISzAlloc_Free(alloc, p->data); | ||
34 | p->data = 0; | ||
35 | p->size = 0; | ||
36 | } | ||