Commit 25918871 authored by dp%netscape.com's avatar dp%netscape.com
Browse files

bug 112312 removing 32k allocs from libjar. darin&dp r=dbaron, sr=darin

parent 84506ffd
Loading
Loading
Loading
Loading
+3 −13
Original line number Original line Diff line number Diff line
@@ -1090,9 +1090,7 @@ PRInt32 nsZipArchive::CopyItemToDisk(const nsZipItem* aItem, PRFileDesc* fOut)
  if ( SeekToItem( aItem ) != ZIP_OK )
  if ( SeekToItem( aItem ) != ZIP_OK )
    return ZIP_ERR_CORRUPT;
    return ZIP_ERR_CORRUPT;
  
  
  char* buf = (char*)PR_Malloc(ZIP_BUFLEN);
  char buf[ZIP_BUFLEN];
  if ( buf == 0 )
    return ZIP_ERR_MEMORY;


  //-- initialize crc
  //-- initialize crc
  crc = crc32(0L, Z_NULL, 0);
  crc = crc32(0L, Z_NULL, 0);
@@ -1125,7 +1123,6 @@ PRInt32 nsZipArchive::CopyItemToDisk(const nsZipItem* aItem, PRFileDesc* fOut)
  if ( (status == ZIP_OK) && (crc != aItem->crc32) )
  if ( (status == ZIP_OK) && (crc != aItem->crc32) )
      status = ZIP_ERR_CORRUPT;
      status = ZIP_ERR_CORRUPT;


  PR_FREEIF( buf );
  return status;
  return status;
}
}


@@ -1177,13 +1174,8 @@ PRInt32 nsZipArchive::InflateItem( const nsZipItem* aItem, PRFileDesc* fOut,
    return ZIP_ERR_CORRUPT;
    return ZIP_ERR_CORRUPT;
  
  
  //-- allocate deflation buffers
  //-- allocate deflation buffers
  Bytef *inbuf  = (Bytef*)PR_Malloc(ZIP_BUFLEN);
  Bytef inbuf[ZIP_BUFLEN];
  Bytef *outbuf = (Bytef*)PR_Malloc(ZIP_BUFLEN);
  Bytef outbuf[ZIP_BUFLEN];
  if ( inbuf == 0 || outbuf == 0 )
  {
    status = ZIP_ERR_MEMORY;
    goto cleanup;
  }
  
  
  //-- set up the inflate
  //-- set up the inflate
  memset( &zs, 0, sizeof(zs) );
  memset( &zs, 0, sizeof(zs) );
@@ -1312,8 +1304,6 @@ cleanup:
    inflateEnd( &zs );
    inflateEnd( &zs );
  }
  }


  PR_FREEIF( inbuf );
  PR_FREEIF( outbuf );
  return status;
  return status;
}
}


+1 −1
Original line number Original line Diff line number Diff line
@@ -30,7 +30,7 @@
#define ZIP_MAGIC     0x5A49505FL   /* "ZIP_" */
#define ZIP_MAGIC     0x5A49505FL   /* "ZIP_" */
#define ZIPFIND_MAGIC 0x5A495046L   /* "ZIPF" */
#define ZIPFIND_MAGIC 0x5A495046L   /* "ZIPF" */
#define ZIP_TABSIZE   256
#define ZIP_TABSIZE   256
#define ZIP_BUFLEN    32767
#define ZIP_BUFLEN    (4 * 1024)


#ifdef STANDALONE
#ifdef STANDALONE
#define nsZipArchive nsZipArchiveStandalone
#define nsZipArchive nsZipArchiveStandalone