summaryrefslogtreecommitdiff
path: root/Build/source/utils/lzma/src/liblzmadec/buffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/utils/lzma/src/liblzmadec/buffer.c')
-rw-r--r--Build/source/utils/lzma/src/liblzmadec/buffer.c83
1 files changed, 0 insertions, 83 deletions
diff --git a/Build/source/utils/lzma/src/liblzmadec/buffer.c b/Build/source/utils/lzma/src/liblzmadec/buffer.c
deleted file mode 100644
index 0b268bcd1ea..00000000000
--- a/Build/source/utils/lzma/src/liblzmadec/buffer.c
+++ /dev/null
@@ -1,83 +0,0 @@
-/******************************************************************************
-
- Decode the whole source buffer at once
-
- Copyright (C) 2005 Lasse Collin <lasse.collin@tukaani.org>
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
-******************************************************************************/
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <assert.h>
-#include "lzmadec.h"
-#include "private.h"
-
-extern int_fast8_t
-lzmadec_buffer (uint8_t *dest, size_t *dest_len,
- uint8_t *source, const size_t source_len)
-{
- lzmadec_stream strm;
- int8_t ret;
-
- /* Initialize the decoder */
- strm.next_in = source;
- strm.avail_in = source_len;
- strm.next_out = dest;
- strm.avail_out = *dest_len;
- strm.lzma_alloc = NULL;
- strm.lzma_free = NULL;
- strm.opaque = NULL;
- ret = lzmadec_init (&strm);
- if (ret != LZMADEC_OK)
- return ret;
-
- /* Check that the destination buffer is big enough. With streamed
- LZMA data we can only hope it is big enough before starting
- the decoding process; if it is too small, we will return
- LZMADEC_BUF_ERROR after decoding dest_len bytes. */
- if (strm.avail_out
- < ((lzmadec_state*)(strm.state))->uncompressed_size)
- return LZMADEC_BUF_ERROR; /* Too small destination buffer */
-
- /* Call the decoder. One pass is enough if everything is OK. */
- ret = lzmadec_decode (&strm, 1);
-
- /* Set *dest_len to amount of bytes actually decoded. */
- assert (*dest_len >= strm.avail_out);
- *dest_len -= strm.avail_out;
-
- /* Free the allocated memory no matter did the decoding
- go well or not. */
- lzmadec_end (&strm);
-
- /* Check the return value of lzmadec_decode() and return appropriate
- return value */
- switch (ret) {
- case LZMADEC_STREAM_END:
- /* Everything has been decoded and put to
- the destination buffer. */
- return LZMADEC_OK;
- case LZMADEC_OK:
- /* Decoding went fine so far but not all of the
- uncompressed data did fit to the destination
- buffer. This should happen only with streamed LZMA
- data (otherwise liblzmadec might have a bug). */
- assert (((lzmadec_state*)(strm.state))->streamed == 1);
- return LZMADEC_BUF_ERROR;
- default:
- assert (ret == LZMADEC_DATA_ERROR);
- return LZMADEC_DATA_ERROR;
- }
-}