]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
delete dead ppmd7 alloc callbacks (#893)
authorMike Frysinger <vapier@gmail.com>
Sat, 7 Oct 2017 09:05:24 +0000 (05:05 -0400)
committerJoerg Sonnenberger <joerg@bec.de>
Sat, 7 Oct 2017 09:05:24 +0000 (11:05 +0200)
These callbacks are just indirections over the standard free & malloc
functions.  Delete them and just call free & malloc directly.

This saves 672 .text bytes and 52 .data bytes on x86_64/Linux.  Also
avoids needing writable data in the first place.

libarchive/archive_ppmd7.c
libarchive/archive_ppmd7_private.h
libarchive/archive_ppmd_private.h
libarchive/archive_read_support_format_7zip.c
libarchive/archive_read_support_format_rar.c
libarchive/archive_write_set_format_7zip.c

index 1aed922db65684082029053eb4e20b9e51ab09ec..d0bacc68cd7c653cbdd78f0b0f4a19851fa06b17 100644 (file)
@@ -115,14 +115,14 @@ static void Ppmd7_Construct(CPpmd7 *p)
   memset(p->HB2Flag + 0x40, 8, 0x100 - 0x40);
 }
 
-static void Ppmd7_Free(CPpmd7 *p, ISzAlloc *alloc)
+static void Ppmd7_Free(CPpmd7 *p)
 {
-  alloc->Free(alloc, p->Base);
+  free(p->Base);
   p->Size = 0;
   p->Base = 0;
 }
 
-static Bool Ppmd7_Alloc(CPpmd7 *p, UInt32 size, ISzAlloc *alloc)
+static Bool Ppmd7_Alloc(CPpmd7 *p, UInt32 size)
 {
   if (p->Base == 0 || p->Size != size)
   {
@@ -131,14 +131,14 @@ static Bool Ppmd7_Alloc(CPpmd7 *p, UInt32 size, ISzAlloc *alloc)
     if (size < UNIT_SIZE) {
       return False;
     }
-    Ppmd7_Free(p, alloc);
+    Ppmd7_Free(p);
     p->AlignOffset =
       #ifdef PPMD_32BIT
         (4 - size) & 3;
       #else
         4 - (size & 3);
       #endif
-    if ((p->Base = (Byte *)alloc->Alloc(alloc, p->AlignOffset + size
+    if ((p->Base = (Byte *)malloc(p->AlignOffset + size
         #ifndef PPMD_32BIT
         + UNIT_SIZE
         #endif
index 06c99e828ab60a25d301db643d564b39c7369729..577d6fb43d0bf4654c1e7feaa6ca6120504e8883 100644 (file)
@@ -95,8 +95,8 @@ typedef struct
 {
   /* Base Functions */
   void (*Ppmd7_Construct)(CPpmd7 *p);
-  Bool (*Ppmd7_Alloc)(CPpmd7 *p, UInt32 size, ISzAlloc *alloc);
-  void (*Ppmd7_Free)(CPpmd7 *p, ISzAlloc *alloc);
+  Bool (*Ppmd7_Alloc)(CPpmd7 *p, UInt32 size);
+  void (*Ppmd7_Free)(CPpmd7 *p);
   void (*Ppmd7_Init)(CPpmd7 *p, unsigned maxOrder);
   #define Ppmd7_WasAllocated(p) ((p)->Base != NULL)
 
index e78bde5940596a438c3d191ff739781823decde7..a83b8514d8779d23dd1710271b489af29ae8ccb5 100644 (file)
@@ -69,13 +69,6 @@ typedef struct
   void (*Write)(void *p, Byte b);
 } IByteOut;
 
-
-typedef struct
-{
-  void *(*Alloc)(void *p, size_t size);
-  void (*Free)(void *p, void *address); /* address can be 0 */
-} ISzAlloc;
-
 /*** End defined in Types.h ***/
 /*** Begin defined in CpuArch.h ***/
 
index 3387eaf7e7f5c61ebc387553815137b41b121701..f74dfc231c44ee54a07da9edb735101c9b876c7f 100644 (file)
@@ -975,18 +975,6 @@ decode_codec_id(const unsigned char *codecId, size_t id_size)
        return (id);
 }
 
-static void *
-ppmd_alloc(void *p, size_t size)
-{
-       (void)p;
-       return malloc(size);
-}
-static void
-ppmd_free(void *p, void *address)
-{
-       (void)p;
-       free(address);
-}
 static Byte
 ppmd_read(void *p)
 {
@@ -1006,8 +994,6 @@ ppmd_read(void *p)
        return (b);
 }
 
-static ISzAlloc g_szalloc = { ppmd_alloc, ppmd_free };
-
 static int
 init_decompression(struct archive_read *a, struct _7zip *zip,
     const struct _7z_coder *coder1, const struct _7z_coder *coder2)
@@ -1237,7 +1223,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip,
 
                if (zip->ppmd7_valid) {
                        __archive_ppmd7_functions.Ppmd7_Free(
-                           &zip->ppmd7_context, &g_szalloc);
+                           &zip->ppmd7_context);
                        zip->ppmd7_valid = 0;
                }
 
@@ -1256,7 +1242,7 @@ init_decompression(struct archive_read *a, struct _7zip *zip,
                }
                __archive_ppmd7_functions.Ppmd7_Construct(&zip->ppmd7_context);
                r = __archive_ppmd7_functions.Ppmd7_Alloc(
-                       &zip->ppmd7_context, msize, &g_szalloc);
+                       &zip->ppmd7_context, msize);
                if (r == 0) {
                        archive_set_error(&a->archive, ENOMEM,
                            "Coludn't allocate memory for PPMd");
@@ -1636,7 +1622,7 @@ free_decompression(struct archive_read *a, struct _7zip *zip)
 #endif
        if (zip->ppmd7_valid) {
                __archive_ppmd7_functions.Ppmd7_Free(
-                       &zip->ppmd7_context, &g_szalloc);
+                       &zip->ppmd7_context);
                zip->ppmd7_valid = 0;
        }
        return (r);
index 751de6979ba5412a59db4d4de7ff44b5c54fcd06..234522229e4094b761597e7294e363dc4817c825 100644 (file)
@@ -604,20 +604,6 @@ lzss_emit_match(struct rar *rar, int offset, int length)
   rar->lzss.position += length;
 }
 
-static void *
-ppmd_alloc(void *p, size_t size)
-{
-  (void)p;
-  return malloc(size);
-}
-static void
-ppmd_free(void *p, void *address)
-{
-  (void)p;
-  free(address);
-}
-static ISzAlloc g_szalloc = { ppmd_alloc, ppmd_free };
-
 static Byte
 ppmd_read(void *p)
 {
@@ -1038,7 +1024,7 @@ archive_read_format_rar_read_data(struct archive_read *a, const void **buff,
   case COMPRESS_METHOD_BEST:
     ret = read_data_compressed(a, buff, size, offset);
     if (ret != ARCHIVE_OK && ret != ARCHIVE_WARN)
-      __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context, &g_szalloc);
+      __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context);
     break;
 
   default:
@@ -1253,7 +1239,7 @@ archive_read_format_rar_cleanup(struct archive_read *a)
   free(rar->dbo);
   free(rar->unp_buffer);
   free(rar->lzss.window);
-  __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context, &g_szalloc);
+  __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context);
   free(rar);
   (a->format->data) = NULL;
   return (ARCHIVE_OK);
@@ -1658,7 +1644,7 @@ read_header(struct archive_read *a, struct archive_entry *entry,
   rar->unp_offset = 0;
   rar->unp_buffer_size = UNP_BUFFER_SIZE;
   memset(rar->lengthtable, 0, sizeof(rar->lengthtable));
-  __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context, &g_szalloc);
+  __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context);
   rar->ppmd_valid = rar->ppmd_eod = 0;
 
   /* Don't set any archive entries for non-file header types */
@@ -2122,7 +2108,7 @@ parse_codes(struct archive_read *a)
 
       /* Make sure ppmd7_contest is freed before Ppmd7_Construct
        * because reading a broken file cause this abnormal sequence. */
-      __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context, &g_szalloc);
+      __archive_ppmd7_functions.Ppmd7_Free(&rar->ppmd7_context);
 
       rar->bytein.a = a;
       rar->bytein.Read = &ppmd_read;
@@ -2137,7 +2123,7 @@ parse_codes(struct archive_read *a)
       }
 
       if (!__archive_ppmd7_functions.Ppmd7_Alloc(&rar->ppmd7_context,
-        rar->dictionary_size, &g_szalloc))
+        rar->dictionary_size))
       {
         archive_set_error(&a->archive, ENOMEM,
                           "Out of memory");
index 41ed74daf1b9b6b10da6445b554cc4fd492b139a..f63a2266a85ede17a747a7c7796992fcf431c937 100644 (file)
@@ -2095,19 +2095,6 @@ compression_init_encoder_lzma2(struct archive *a,
 /*
  * _7_PPMD compressor.
  */
-static void *
-ppmd_alloc(void *p, size_t size)
-{
-       (void)p;
-       return malloc(size);
-}
-static void
-ppmd_free(void *p, void *address)
-{
-       (void)p;
-       free(address);
-}
-static ISzAlloc g_szalloc = { ppmd_alloc, ppmd_free };
 static void
 ppmd_write(void *p, Byte b)
 {
@@ -2167,7 +2154,7 @@ compression_init_encoder_ppmd(struct archive *a,
        archive_le32enc(props+1, msize);
        __archive_ppmd7_functions.Ppmd7_Construct(&strm->ppmd7_context);
        r = __archive_ppmd7_functions.Ppmd7_Alloc(
-               &strm->ppmd7_context, msize, &g_szalloc);
+               &strm->ppmd7_context, msize);
        if (r == 0) {
                free(strm->buff);
                free(strm);
@@ -2243,7 +2230,7 @@ compression_end_ppmd(struct archive *a, struct la_zstream *lastrm)
        (void)a; /* UNUSED */
 
        strm = (struct ppmd_stream *)lastrm->real_stream;
-       __archive_ppmd7_functions.Ppmd7_Free(&strm->ppmd7_context, &g_szalloc);
+       __archive_ppmd7_functions.Ppmd7_Free(&strm->ppmd7_context);
        free(strm->buff);
        free(strm);
        lastrm->real_stream = NULL;