From 8901ea9184c3c02232f9c33a6daeeeed827c645e Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Fri, 11 Nov 2011 14:29:21 +0100 Subject: Decompressors: get rid of set_error_fn() macro From: Lasse Collin set_error_fn() is a useless complication. Only unlzma.c had some use for it and that was easy to change too. This also gets rid of the static function pointer "error". Signed-off-by: Lasse Collin Signed-off-by: Jan Beulich Acked-by: Keir Fraser Committed-by: Jan Beulich --- xen/common/bunzip2.c | 3 +-- xen/common/decompress.h | 3 --- xen/common/unlzma.c | 7 ++++--- xen/common/unlzo.c | 4 +--- xen/common/unxz.c | 4 +--- 5 files changed, 7 insertions(+), 14 deletions(-) diff --git a/xen/common/bunzip2.c b/xen/common/bunzip2.c index 9d3cc18e44..eaf920231a 100644 --- a/xen/common/bunzip2.c +++ b/xen/common/bunzip2.c @@ -666,13 +666,12 @@ STATIC int INIT bunzip2(unsigned char *buf, unsigned int len, int(*flush)(void*, unsigned int), unsigned char *outbuf, unsigned int *pos, - void(*error_fn)(const char *x)) + void(*error)(const char *x)) { struct bunzip_data *bd; int i = -1; unsigned char *inbuf; - set_error_fn(error_fn); if (flush) outbuf = malloc(BZIP2_IOBUF_SIZE); diff --git a/xen/common/decompress.h b/xen/common/decompress.h index f329770749..bd62b5dc74 100644 --- a/xen/common/decompress.h +++ b/xen/common/decompress.h @@ -10,9 +10,6 @@ #define INIT __init #define INITDATA __initdata -static void(*__initdata error)(const char *); -#define set_error_fn(x) error = x; - #define malloc xmalloc_bytes #define free xfree diff --git a/xen/common/unlzma.c b/xen/common/unlzma.c index bf772d06e8..689b72a662 100644 --- a/xen/common/unlzma.c +++ b/xen/common/unlzma.c @@ -67,6 +67,7 @@ struct rc { uint32_t code; uint32_t range; uint32_t bound; + void (*error)(const char *); }; @@ -85,7 +86,7 @@ static void INIT rc_read(struct rc *rc) { rc->buffer_size = rc->fill((char *)rc->buffer, LZMA_IOBUF_SIZE); if (rc->buffer_size <= 0) - error("unexpected EOF"); + rc->error("unexpected EOF"); rc->ptr = rc->buffer; rc->buffer_end = rc->buffer + rc->buffer_size; } @@ -529,7 +530,7 @@ STATIC int INIT unlzma(unsigned char *buf, unsigned int in_len, int(*flush)(void*, unsigned int), unsigned char *output, unsigned int *posp, - void(*error_fn)(const char *x) + void(*error)(const char *x) ) { struct lzma_header header; @@ -545,7 +546,7 @@ STATIC int INIT unlzma(unsigned char *buf, unsigned int in_len, unsigned char *inbuf; int ret = -1; - set_error_fn(error_fn); + rc.error = error; if (buf) inbuf = buf; diff --git a/xen/common/unlzo.c b/xen/common/unlzo.c index 70910a8b70..08117e244e 100644 --- a/xen/common/unlzo.c +++ b/xen/common/unlzo.c @@ -105,7 +105,7 @@ STATIC int INIT unlzo(u8 *input, unsigned int in_len, int (*fill) (void *, unsigned int), int (*flush) (void *, unsigned int), u8 *output, unsigned int *posp, - void (*error_fn) (const char *x)) + void (*error) (const char *x)) { u8 skip = 0, r = 0; u32 src_len, dst_len; @@ -113,8 +113,6 @@ STATIC int INIT unlzo(u8 *input, unsigned int in_len, u8 *in_buf, *in_buf_save, *out_buf; int ret = -1; - set_error_fn(error_fn); - if (output) { out_buf = output; } else if (!flush) { diff --git a/xen/common/unxz.c b/xen/common/unxz.c index 132168f924..cf25c9fc8e 100644 --- a/xen/common/unxz.c +++ b/xen/common/unxz.c @@ -161,15 +161,13 @@ STATIC int INIT unxz(unsigned char *in, unsigned int in_size, int (*fill)(void *dest, unsigned int size), int (*flush)(void *src, unsigned int size), unsigned char *out, unsigned int *in_used, - void (*error_fn)(const char *x)) + void (*error)(const char *x)) { struct xz_buf b; struct xz_dec *s; enum xz_ret ret; bool_t must_free_in = false; - set_error_fn(error_fn); - xz_crc32_init(); if (in_used != NULL) -- cgit v1.2.3