aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLasse Collin <lasse.collin@tukaani.org>2011-11-11 14:29:21 +0100
committerLasse Collin <lasse.collin@tukaani.org>2011-11-11 14:29:21 +0100
commit8901ea9184c3c02232f9c33a6daeeeed827c645e (patch)
treea9348e56d0c52868a8f80a4d9691ba119bbd15ac
parent3d4e3e903e3b4bbfdab4924a71bdab28fb62f84f (diff)
downloadxen-8901ea9184c3c02232f9c33a6daeeeed827c645e.tar.gz
xen-8901ea9184c3c02232f9c33a6daeeeed827c645e.tar.bz2
xen-8901ea9184c3c02232f9c33a6daeeeed827c645e.zip
Decompressors: get rid of set_error_fn() macro
From: Lasse Collin <lasse.collin@tukaani.org> 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 <lasse.collin@tukaani.org> Signed-off-by: Jan Beulich <jbeulich@suse.com> Acked-by: Keir Fraser <keir@xen.org> Committed-by: Jan Beulich <jbeulich@suse.com>
-rw-r--r--xen/common/bunzip2.c3
-rw-r--r--xen/common/decompress.h3
-rw-r--r--xen/common/unlzma.c7
-rw-r--r--xen/common/unlzo.c4
-rw-r--r--xen/common/unxz.c4
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)