Index: xz/src/liblzma/simple/simple_decoder.c |
=================================================================== |
--- xz/src/liblzma/simple/simple_decoder.c (revision 0) |
+++ xz/src/liblzma/simple/simple_decoder.c (revision 0) |
@@ -0,0 +1,40 @@ |
+/////////////////////////////////////////////////////////////////////////////// |
+// |
+/// \file simple_decoder.c |
+/// \brief Properties decoder for simple filters |
+// |
+// Author: Lasse Collin |
+// |
+// This file has been put into the public domain. |
+// You can do whatever you want with this file. |
+// |
+/////////////////////////////////////////////////////////////////////////////// |
+ |
+#include "simple_decoder.h" |
+ |
+ |
+extern lzma_ret |
+lzma_simple_props_decode(void **options, lzma_allocator *allocator, |
+ const uint8_t *props, size_t props_size) |
+{ |
+ if (props_size == 0) |
+ return LZMA_OK; |
+ |
+ if (props_size != 4) |
+ return LZMA_OPTIONS_ERROR; |
+ |
+ lzma_options_bcj *opt = lzma_alloc( |
+ sizeof(lzma_options_bcj), allocator); |
+ if (opt == NULL) |
+ return LZMA_MEM_ERROR; |
+ |
+ opt->start_offset = unaligned_read32le(props); |
+ |
+ // Don't leave an options structure allocated if start_offset is zero. |
+ if (opt->start_offset == 0) |
+ lzma_free(opt, allocator); |
+ else |
+ *options = opt; |
+ |
+ return LZMA_OK; |
+} |
Property changes on: xz/src/liblzma/simple/simple_decoder.c |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |