Build fix for hand-written decode_huffman_fast
diff --git a/script/wuffs-deflate-decoder-decode-huffman.c b/script/wuffs-deflate-decoder-decode-huffman.c
index 25cd052..5c345de 100644
--- a/script/wuffs-deflate-decoder-decode-huffman.c
+++ b/script/wuffs-deflate-decoder-decode-huffman.c
@@ -126,24 +126,10 @@
uint64_t pos;
bool closed;
} wuffs_base__io_buffer_meta;
-typedef struct wuffs_base__io_buffer__struct {
+typedef struct {
wuffs_base__slice_u8 data;
wuffs_base__io_buffer_meta meta;
} wuffs_base__io_buffer;
-typedef struct {
- struct {
- struct wuffs_base__io_buffer__struct* buf;
- uint8_t* mark;
- uint8_t* limit;
- } private_impl;
-} wuffs_base__io_reader;
-typedef struct {
- struct {
- struct wuffs_base__io_buffer__struct* buf;
- uint8_t* mark;
- uint8_t* limit;
- } private_impl;
-} wuffs_base__io_writer;
typedef struct wuffs_deflate__decoder__struct {
struct {
uint32_t magic;
@@ -171,8 +157,8 @@
static wuffs_base__status wuffs_deflate__decoder__decode_huffman_fast(
wuffs_deflate__decoder* self,
- wuffs_base__io_writer a_dst,
- wuffs_base__io_reader a_src) {
+ wuffs_base__io_buffer* a_dst,
+ wuffs_base__io_buffer* a_src) {
return NULL;
}
@@ -223,19 +209,19 @@
// the function name is "wuffs_etc", not "c_wuffs_etc".
static wuffs_base__status wuffs_deflate__decoder__decode_huffman_fast(
wuffs_deflate__decoder* self,
- wuffs_base__io_writer a_dst,
- wuffs_base__io_reader a_src);
+ wuffs_base__io_buffer* a_dst,
+ wuffs_base__io_buffer* a_src);
// This is the overriding implementation.
wuffs_base__status c_wuffs_deflate__decoder__decode_huffman_fast(
wuffs_deflate__decoder* self,
- wuffs_base__io_writer a_dst,
- wuffs_base__io_reader a_src) {
+ wuffs_base__io_buffer* a_dst,
+ wuffs_base__io_buffer* a_src) {
// Avoid the -Werror=unused-function warning for the now-unused
// overridden wuffs_deflate__decoder__decode_huffman_fast.
(void)(wuffs_deflate__decoder__decode_huffman_fast);
- if (!a_dst.private_impl.buf || !a_src.private_impl.buf) {
+ if (!a_dst || !a_src) {
return wuffs_base__error__bad_argument;
}
wuffs_base__status status = NULL;
@@ -243,26 +229,16 @@
// Load contextual state. Prepare to check that pdst and psrc remain within
// a_dst's and a_src's bounds.
- uint8_t* pdst =
- a_dst.private_impl.buf->data.ptr + a_dst.private_impl.buf->meta.wi;
- uint8_t* qdst =
- a_dst.private_impl.buf->data.ptr + a_dst.private_impl.buf->data.len;
- if (a_dst.private_impl.limit) {
- qdst = a_dst.private_impl.limit;
- }
+ uint8_t* pdst = a_dst->data.ptr + a_dst->meta.wi;
+ uint8_t* qdst = a_dst->data.ptr + a_dst->data.len;
if ((qdst - pdst) < 258) {
return NULL;
} else {
qdst -= 258;
}
- uint8_t* psrc =
- a_src.private_impl.buf->data.ptr + a_src.private_impl.buf->meta.ri;
- uint8_t* qsrc =
- a_src.private_impl.buf->data.ptr + a_src.private_impl.buf->meta.wi;
- if (a_src.private_impl.limit) {
- qsrc = a_src.private_impl.limit;
- }
+ uint8_t* psrc = a_src->data.ptr + a_src->meta.ri;
+ uint8_t* qsrc = a_src->data.ptr + a_src->meta.wi;
if ((qsrc - psrc) < 12) {
return NULL;
} else {
@@ -277,7 +253,7 @@
uint32_t n_bits = self->private_impl.f_n_bits;
// Initialize other local variables.
- uint8_t* pdst_mark = a_dst.private_impl.mark ? a_dst.private_impl.mark : pdst;
+ uint8_t* pdst_mark = pdst;
uint32_t lmask = MASK(self->private_impl.f_n_huffs_bits[0]);
uint32_t dmask = MASK(self->private_impl.f_n_huffs_bits[1]);
@@ -495,8 +471,8 @@
bits &= MASK(n_bits);
// Save contextual state.
- a_dst.private_impl.buf->meta.wi = pdst - a_dst.private_impl.buf->data.ptr;
- a_src.private_impl.buf->meta.ri = psrc - a_src.private_impl.buf->data.ptr;
+ a_dst->meta.wi = pdst - a_dst->data.ptr;
+ a_src->meta.ri = psrc - a_src->data.ptr;
self->private_impl.f_bits = bits;
self->private_impl.f_n_bits = n_bits;