xref: /aosp_15_r20/external/lzma/C/7zBuf.c (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker /* 7zBuf.c -- Byte Buffer
2*f6dc9357SAndroid Build Coastguard Worker 2017-04-03 : Igor Pavlov : Public domain */
3*f6dc9357SAndroid Build Coastguard Worker 
4*f6dc9357SAndroid Build Coastguard Worker #include "Precomp.h"
5*f6dc9357SAndroid Build Coastguard Worker 
6*f6dc9357SAndroid Build Coastguard Worker #include "7zBuf.h"
7*f6dc9357SAndroid Build Coastguard Worker 
Buf_Init(CBuf * p)8*f6dc9357SAndroid Build Coastguard Worker void Buf_Init(CBuf *p)
9*f6dc9357SAndroid Build Coastguard Worker {
10*f6dc9357SAndroid Build Coastguard Worker   p->data = 0;
11*f6dc9357SAndroid Build Coastguard Worker   p->size = 0;
12*f6dc9357SAndroid Build Coastguard Worker }
13*f6dc9357SAndroid Build Coastguard Worker 
Buf_Create(CBuf * p,size_t size,ISzAllocPtr alloc)14*f6dc9357SAndroid Build Coastguard Worker int Buf_Create(CBuf *p, size_t size, ISzAllocPtr alloc)
15*f6dc9357SAndroid Build Coastguard Worker {
16*f6dc9357SAndroid Build Coastguard Worker   p->size = 0;
17*f6dc9357SAndroid Build Coastguard Worker   if (size == 0)
18*f6dc9357SAndroid Build Coastguard Worker   {
19*f6dc9357SAndroid Build Coastguard Worker     p->data = 0;
20*f6dc9357SAndroid Build Coastguard Worker     return 1;
21*f6dc9357SAndroid Build Coastguard Worker   }
22*f6dc9357SAndroid Build Coastguard Worker   p->data = (Byte *)ISzAlloc_Alloc(alloc, size);
23*f6dc9357SAndroid Build Coastguard Worker   if (p->data)
24*f6dc9357SAndroid Build Coastguard Worker   {
25*f6dc9357SAndroid Build Coastguard Worker     p->size = size;
26*f6dc9357SAndroid Build Coastguard Worker     return 1;
27*f6dc9357SAndroid Build Coastguard Worker   }
28*f6dc9357SAndroid Build Coastguard Worker   return 0;
29*f6dc9357SAndroid Build Coastguard Worker }
30*f6dc9357SAndroid Build Coastguard Worker 
Buf_Free(CBuf * p,ISzAllocPtr alloc)31*f6dc9357SAndroid Build Coastguard Worker void Buf_Free(CBuf *p, ISzAllocPtr alloc)
32*f6dc9357SAndroid Build Coastguard Worker {
33*f6dc9357SAndroid Build Coastguard Worker   ISzAlloc_Free(alloc, p->data);
34*f6dc9357SAndroid Build Coastguard Worker   p->data = 0;
35*f6dc9357SAndroid Build Coastguard Worker   p->size = 0;
36*f6dc9357SAndroid Build Coastguard Worker }
37