提交 93685ad2 编写于 作者: L Lasse Collin 提交者: Linus Torvalds

Decompressors: get rid of set_error_fn() macro

set_error_fn() has become a useless complication after c1e7c3ae
("bzip2/lzma/gzip: pre-boot malloc doesn't return NULL on failure") fixed
the use of error() in malloc().  Only decompress_unlzma.c had some use for
it and that was easy to change too.

This also gets rid of the static function pointer "error", which
should have been marked as __initdata.
Signed-off-by: NLasse Collin <lasse.collin@tukaani.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Alain Knaff <alain@knaff.lu>
Cc: Albin Tonnerre <albin.tonnerre@free-electrons.com>
Cc: Phillip Lougher <phillip@lougher.demon.co.uk>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 6b01ed64
...@@ -61,8 +61,6 @@ static void free(void *where) ...@@ -61,8 +61,6 @@ static void free(void *where)
#define large_malloc(a) malloc(a) #define large_malloc(a) malloc(a)
#define large_free(a) free(a) #define large_free(a) free(a)
#define set_error_fn(x)
#define INIT #define INIT
#else /* STATIC */ #else /* STATIC */
...@@ -84,9 +82,6 @@ static void free(void *where) ...@@ -84,9 +82,6 @@ static void free(void *where)
#define large_malloc(a) vmalloc(a) #define large_malloc(a) vmalloc(a)
#define large_free(a) vfree(a) #define large_free(a) vfree(a)
static void(*error)(char *m);
#define set_error_fn(x) error = x;
#define INIT __init #define INIT __init
#define STATIC #define STATIC
......
...@@ -682,13 +682,12 @@ STATIC int INIT bunzip2(unsigned char *buf, int len, ...@@ -682,13 +682,12 @@ STATIC int INIT bunzip2(unsigned char *buf, int len,
int(*flush)(void*, unsigned int), int(*flush)(void*, unsigned int),
unsigned char *outbuf, unsigned char *outbuf,
int *pos, int *pos,
void(*error_fn)(char *x)) void(*error)(char *x))
{ {
struct bunzip_data *bd; struct bunzip_data *bd;
int i = -1; int i = -1;
unsigned char *inbuf; unsigned char *inbuf;
set_error_fn(error_fn);
if (flush) if (flush)
outbuf = malloc(BZIP2_IOBUF_SIZE); outbuf = malloc(BZIP2_IOBUF_SIZE);
...@@ -751,8 +750,8 @@ STATIC int INIT decompress(unsigned char *buf, int len, ...@@ -751,8 +750,8 @@ STATIC int INIT decompress(unsigned char *buf, int len,
int(*flush)(void*, unsigned int), int(*flush)(void*, unsigned int),
unsigned char *outbuf, unsigned char *outbuf,
int *pos, int *pos,
void(*error_fn)(char *x)) void(*error)(char *x))
{ {
return bunzip2(buf, len - 4, fill, flush, outbuf, pos, error_fn); return bunzip2(buf, len - 4, fill, flush, outbuf, pos, error);
} }
#endif #endif
...@@ -38,13 +38,12 @@ STATIC int INIT gunzip(unsigned char *buf, int len, ...@@ -38,13 +38,12 @@ STATIC int INIT gunzip(unsigned char *buf, int len,
int(*flush)(void*, unsigned int), int(*flush)(void*, unsigned int),
unsigned char *out_buf, unsigned char *out_buf,
int *pos, int *pos,
void(*error_fn)(char *x)) { void(*error)(char *x)) {
u8 *zbuf; u8 *zbuf;
struct z_stream_s *strm; struct z_stream_s *strm;
int rc; int rc;
size_t out_len; size_t out_len;
set_error_fn(error_fn);
rc = -1; rc = -1;
if (flush) { if (flush) {
out_len = 0x8000; /* 32 K */ out_len = 0x8000; /* 32 K */
......
...@@ -74,6 +74,7 @@ struct rc { ...@@ -74,6 +74,7 @@ struct rc {
uint32_t code; uint32_t code;
uint32_t range; uint32_t range;
uint32_t bound; uint32_t bound;
void (*error)(char *);
}; };
...@@ -92,7 +93,7 @@ static void INIT rc_read(struct rc *rc) ...@@ -92,7 +93,7 @@ static void INIT rc_read(struct rc *rc)
{ {
rc->buffer_size = rc->fill((char *)rc->buffer, LZMA_IOBUF_SIZE); rc->buffer_size = rc->fill((char *)rc->buffer, LZMA_IOBUF_SIZE);
if (rc->buffer_size <= 0) if (rc->buffer_size <= 0)
error("unexpected EOF"); rc->error("unexpected EOF");
rc->ptr = rc->buffer; rc->ptr = rc->buffer;
rc->buffer_end = rc->buffer + rc->buffer_size; rc->buffer_end = rc->buffer + rc->buffer_size;
} }
...@@ -536,7 +537,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len, ...@@ -536,7 +537,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
int(*flush)(void*, unsigned int), int(*flush)(void*, unsigned int),
unsigned char *output, unsigned char *output,
int *posp, int *posp,
void(*error_fn)(char *x) void(*error)(char *x)
) )
{ {
struct lzma_header header; struct lzma_header header;
...@@ -552,7 +553,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len, ...@@ -552,7 +553,7 @@ STATIC inline int INIT unlzma(unsigned char *buf, int in_len,
unsigned char *inbuf; unsigned char *inbuf;
int ret = -1; int ret = -1;
set_error_fn(error_fn); rc.error = error;
if (buf) if (buf)
inbuf = buf; inbuf = buf;
...@@ -659,9 +660,9 @@ STATIC int INIT decompress(unsigned char *buf, int in_len, ...@@ -659,9 +660,9 @@ STATIC int INIT decompress(unsigned char *buf, int in_len,
int(*flush)(void*, unsigned int), int(*flush)(void*, unsigned int),
unsigned char *output, unsigned char *output,
int *posp, int *posp,
void(*error_fn)(char *x) void(*error)(char *x)
) )
{ {
return unlzma(buf, in_len - 4, fill, flush, output, posp, error_fn); return unlzma(buf, in_len - 4, fill, flush, output, posp, error);
} }
#endif #endif
...@@ -91,7 +91,7 @@ STATIC inline int INIT unlzo(u8 *input, int in_len, ...@@ -91,7 +91,7 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
int (*fill) (void *, unsigned int), int (*fill) (void *, unsigned int),
int (*flush) (void *, unsigned int), int (*flush) (void *, unsigned int),
u8 *output, int *posp, u8 *output, int *posp,
void (*error_fn) (char *x)) void (*error) (char *x))
{ {
u8 skip = 0, r = 0; u8 skip = 0, r = 0;
u32 src_len, dst_len; u32 src_len, dst_len;
...@@ -99,8 +99,6 @@ STATIC inline int INIT unlzo(u8 *input, int in_len, ...@@ -99,8 +99,6 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
u8 *in_buf, *in_buf_save, *out_buf; u8 *in_buf, *in_buf_save, *out_buf;
int ret = -1; int ret = -1;
set_error_fn(error_fn);
if (output) { if (output) {
out_buf = output; out_buf = output;
} else if (!flush) { } else if (!flush) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册