*: refactor handling of archived files. "tar f file.tar.lzma" now works too.

function                                             old     new   delta
unpack_Z_stream                                        -    1229   +1229
open_zipped                                            -     176    +176
unpack_bz2_stream_prime                                -      60     +60
tar_main                                             642     677     +35
find_main                                            406     418     +12
sv_main                                             1222    1233     +11
decode_format_string                                 829     837      +8
cmp_main                                             641     649      +8
popstring                                            134     140      +6
filter_accept_list_reassign                          120     125      +5
parse_and_put_prompt                                 800     804      +4
passwd_main                                         1053    1049      -4
make_new_name_gunzip                                 119     114      -5
rpm_main                                            1688    1670     -18
prepare                                              302     283     -19
xmalloc_open_zipped_read_close                       135      61     -74
uncompress                                          1229       -   -1229
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 8/5 up/down: 1554/-1349)        Total: 205 bytes
This commit is contained in:
Denis Vlasenko
2008-08-05 13:10:34 +00:00
parent 9b44613202
commit e9ad84dfd4
21 changed files with 325 additions and 320 deletions

View File

@ -100,7 +100,7 @@ static char* find_keyword(char *ptr, size_t len, const char *word)
{
int wlen;
if (!ptr) /* happens if read_module cannot read it */
if (!ptr) /* happens if xmalloc_open_zipped_read_close cannot read it */
return NULL;
wlen = strlen(word);
@ -141,12 +141,6 @@ static char* str_2_list(const char *str)
return dst;
}
#if ENABLE_FEATURE_MODPROBE_SMALL_ZIPPED
# define read_module xmalloc_open_zipped_read_close
#else
# define read_module xmalloc_open_read_close
#endif
/* We use error numbers in a loose translation... */
static const char *moderror(int err)
{
@ -173,7 +167,7 @@ static int load_module(const char *fname, const char *options)
char *module_image;
dbg1_error_msg("load_module('%s','%s')", fname, options);
module_image = read_module(fname, &len);
module_image = xmalloc_open_zipped_read_close(fname, &len);
r = (!module_image || init_module(module_image, len, options ? options : "") != 0);
free(module_image);
dbg1_error_msg("load_module:%d", r);
@ -195,7 +189,7 @@ static void parse_module(module_info *info, const char *pathname)
/* Read (possibly compressed) module */
len = 64 * 1024 * 1024; /* 64 Mb at most */
module_image = read_module(pathname, &len);
module_image = xmalloc_open_zipped_read_close(pathname, &len);
//TODO: optimize redundant module body reads
/* "alias1 symbol:sym1 alias2 symbol:sym2" */