101 #include <config_auto.h>
105 #include "allheaders.h"
108 static const l_uint32 MaxArraySize = 1000000000;
135 if (nalloc <= 0 || nalloc > MaxArraySize)
139 if ((bb->
array = (l_uint8 *)LEPT_CALLOC(nalloc,
sizeof(l_uint8))) == NULL) {
141 return (
L_BBUFFER *)ERROR_PTR(
"byte array not made", __func__, NULL);
147 memcpy(bb->
array, indata, nalloc);
175 L_WARNING(
"ptr address is NULL\n", __func__);
179 if ((bb = *pbb) == NULL)
183 LEPT_FREE(bb->
array);
210 L_WARNING(
"ptr address is NULL\n", __func__);
213 if (pnbytes == NULL) {
214 L_WARNING(
"&nbytes is NULL\n", __func__);
219 if ((bb = *pbb) == NULL)
225 if ((array = (l_uint8 *)LEPT_CALLOC(nbytes,
sizeof(l_uint8))) == NULL) {
226 L_WARNING(
"calloc failure for array\n", __func__);
263 l_int32 navail, nadd, nwritten;
266 return ERROR_INT(
"bb not defined", __func__, 1);
268 return ERROR_INT(
"src not defined", __func__, 1);
270 return ERROR_INT(
"no bytes to read", __func__, 1);
273 memmove(bb->
array, bb->
array + nwritten, bb->
n - nwritten);
281 if (nbytes > navail) {
282 nadd = L_MAX(bb->
nalloc, nbytes);
284 return ERROR_INT(
"extension failed", __func__, 1);
288 memcpy(bb->
array + bb->
n, src, nbytes);
307 l_int32 navail, nadd, nread, nwritten;
310 return ERROR_INT(
"bb not defined", __func__, 1);
312 return ERROR_INT(
"fp not defined", __func__, 1);
314 return ERROR_INT(
"no bytes to read", __func__, 1);
317 memmove(bb->
array, bb->
array + nwritten, bb->
n - nwritten);
325 if (nbytes > navail) {
326 nadd = L_MAX(bb->
nalloc, nbytes);
328 return ERROR_INT(
"extension failed", __func__, 1);
332 nread = fread(bb->
array + bb->
n, 1, nbytes, fp);
357 return ERROR_INT(
"bb not defined", __func__, 1);
361 bb->
nalloc + nbytes)) == NULL)
362 return ERROR_INT(
"new ptr array not returned", __func__, 1);
390 return ERROR_INT(
"bb not defined", __func__, 1);
392 return ERROR_INT(
"dest not defined", __func__, 1);
394 return ERROR_INT(
"no bytes requested to write", __func__, 1);
396 return ERROR_INT(
"&nout not defined", __func__, 1);
399 nout = L_MIN(nleft, nbytes);
440 return ERROR_INT(
"bb not defined", __func__, 1);
442 return ERROR_INT(
"output stream not defined", __func__, 1);
444 return ERROR_INT(
"no bytes requested to write", __func__, 1);
446 return ERROR_INT(
"&nout not defined", __func__, 1);
449 nout = L_MIN(nleft, nbytes);
l_ok bbufferWrite(L_BBUFFER *bb, l_uint8 *dest, size_t nbytes, size_t *pnout)
bbufferWrite()
l_ok bbufferRead(L_BBUFFER *bb, l_uint8 *src, l_int32 nbytes)
bbufferRead()
L_BBUFFER * bbufferCreate(const l_uint8 *indata, l_int32 nalloc)
bbufferCreate()
l_ok bbufferExtendArray(L_BBUFFER *bb, l_int32 nbytes)
bbufferExtendArray()
static const l_int32 InitialArraySize
l_ok bbufferReadStream(L_BBUFFER *bb, FILE *fp, l_int32 nbytes)
bbufferReadStream()
l_ok bbufferWriteStream(L_BBUFFER *bb, FILE *fp, size_t nbytes, size_t *pnout)
bbufferWriteStream()
l_uint8 * bbufferDestroyAndSaveData(L_BBUFFER **pbb, size_t *pnbytes)
bbufferDestroyAndSaveData()
void bbufferDestroy(L_BBUFFER **pbb)
bbufferDestroy()
void * reallocNew(void **pindata, size_t oldsize, size_t newsize)
reallocNew()