summaryrefslogtreecommitdiff
path: root/inflate.c
AgeCommit message (Collapse)Author
2022-11-06[zlib] Sync with zlib 1.2.13, patch 2 of NAdenilson Cavalcanti
Ported: - Remove deleted assembler code references. - Remove redundant check in gz_look(). - Avoid undefined negation behavior if windowBits is INT_MIN. - Provide missing function prototypes in CRC-32 code. [fredgan] - Don't try to include unistd.h on Windows with LLVM. - zlib 1.2.13 Bug: 1374743 Change-Id: I57542da8da09731669a6ddee5afad81808fa9432 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4006381 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by: Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#1067981} NOKEYCHECK=True GitOrigin-RevId: e2e230364bcf8fe55dde5dca8310da6906ae64ad
2022-09-13[zlib] Increase inflate dynamic table sizesAdenilson Cavalcanti
First patch* based on Dougall Johnson zlib research**. The basic idea is to use a bigger root table to avoid a branch misprediction while performing a lookup when the searched Huffman code is actually located in a nested sub-table. The increase of memory use in the structure inflate_state will be 1920 bytes (i.e. 1332 - 852 = 480 x sizeof(code) = 480 x 4) per active inflate context which should be fine given that even lower spec boards generally have CPUs with a L1 cache size of 32KB. Performance gains are dependent on input entropy features plus architecture, but are a net positive on both x86 (Haswell: 5.1%), Cortex big.LITTLE.Medium (X1, A55, A76) on 32bit (6.3%, 1.44%, 5.7%) and 64bit (8.3%, 2.4%, 6.7%) plus M1 (7.6%). * https://github.com/dougallj/zlib-dougallj/commits/main ** https://dougallj.wordpress.com/2022/08/20/ Bug: 1354990 Change-Id: I1f784bfaf9a8108f657e3c9753030482e5026366 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3888219 Reviewed-by: Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1046251} NOKEYCHECK=True GitOrigin-RevId: b40b1f7a30b58aeb0d6e4906ae25c6e4734f3b1f
2022-08-25Sync with zlib 1.2.12.1, patch 1 of NAdenilson Cavalcanti
Ported: - Change version number on develop branch to 1.2.12.1. - Fix odd error in Visual C compiler preventing automatic promotion. - Fix inflateBack to detect invalid input with distances too far. - Have infback() deliver all of the available output up to any error. - Fix a bug when getting a gzip header extra field with inflate(). - Fix extra field processing bug that dereferences NULL state->head. - Fix some typos. Bug: 1355103 Change-Id: I838b3f7c885a97d72e040e5a5224bc0aa58068fb Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3853109 Reviewed-by: Hans Wennborg <hans@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#1039413} NOKEYCHECK=True GitOrigin-RevId: 29ee00aece42bd66b1a7196aa41275baad2dd512
2022-04-28[zlib] Re-sync with zlib 1.2.12, patch 15 of NAdenilson Cavalcanti
The last two changes came from the 'develop' branch of canonical zlib and should address some issues on 1.2.12 that are going to be featured on the upcoming 1.2.12.x. With this patch landing, Chromium's zlib will be 1.2.12 + fixes (plus our optimizations). Ported: - Eliminate use of ULL constants. - Fix crc32.c to compile local functions only if used. - zlib 1.2.12 - Silence some warnings from Visual Studio C. - Correct incorrect inputs provided to the CRC functions. Bug: 1032721 Change-Id: I3903ae4de5f42427fae1cca8052ad300f5a07b30 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3611239 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by: Chris Blume <cblume@chromium.org> Reviewed-by: Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#997532} NOKEYCHECK=True GitOrigin-RevId: 9eb3d1c886a4dd302304241e74a75127e2069d17
2022-04-27[zlib] Re-sync with zlib 1.2.12, patch 14 of NAdenilson Cavalcanti
Ported: - Avoid adding empty gzip member after gzflush with Z_FINISH. - Fix error in comment on the polynomial representation of a byte. - Clarify gz* function interfaces, referring to parameter names. - Change macro name in inflate.c to avoid collision in VxWorks. - Replace black/white with allow/block. (theresa-m) - Add fallthrough comments for gcc. Bug: 1032721 Change-Id: Iddabef8450dca9dced3df58473a0ecb197796dc4 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3611483 Reviewed-by: Noel Gordon <noel@chromium.org> Reviewed-by: Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#996983} NOKEYCHECK=True GitOrigin-RevId: c47a52f8f7950377f45f850cf66092a4a6033fa6
2022-04-06[zlib] Re-sync with zlib 1.2.12, patch 9 of NAdenilson Cavalcanti
Ported: - Don't bother computing check value after successful inflateSync() Bug: 1032721 Change-Id: If96f53a341203df3b68e63d01136b5287269b62b Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3574954 Reviewed-by: Noel Gordon <noel@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Commit-Position: refs/heads/main@{#989673} NOKEYCHECK=True GitOrigin-RevId: 463fef05dafc702713d5001178cb1e47376739ff
2022-04-01[zlib] Re-sync with zlib 1.2.12, patch 5 of NAdenilson Cavalcanti
Ported: - Don't compute check value for raw inflate if asked to validate - Handle case where inflateSync used when header never processed Bug: 1032721 Change-Id: If83342fc0df3b9d2bcb0c19c42065c2b28fc3a17 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3564231 Reviewed-by: Noel Gordon <noel@chromium.org> Commit-Queue: Noel Gordon <noel@chromium.org> Cr-Commit-Position: refs/heads/main@{#988214} NOKEYCHECK=True GitOrigin-RevId: d2b6c6251e529efc646e08886fa4ff52010be0ec
2018-02-13Share inffast names in zlibChris Blume
We use a different set of names in root and contrib directories for the same purpose. This patch consolidates the names. BUG=764431 Change-Id: I346a6f9ab67423b97843346bab6b0c58f516ed1d Reviewed-on: https://chromium-review.googlesource.com/914469 Commit-Queue: Chris Blume <cblume@chromium.org> Reviewed-by: Noel Gordon <noel@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#536429} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 46f115f22260093ee7bc2a8764adf64d9c48a612
2018-02-07Remove x86_check_features() from inflateNoel Gordon
adler32 can be freely called like crc32, per the "zlib.h" docs so move the x86 feature check there, which allows us to remove x86_check_features() from zlib inflate. Note inflate() calls adler32(0, Z_NULL, 0); (once only) before using the zlib adler32() routine. A reading from third_party/libpng png.c 2324: /* Now calculate the adler32 if not done already. */ 2327: adler = adler32(0, NULL, 0); 2328: adler = adler32(adler, profile, length); suggests they also conform to the "zlib.h" doc rules about use of the adler32 routine. Bug: 762564 Change-Id: Id84da0eb52bc10edb541a284eab9aef652ba2c72 Reviewed-on: https://chromium-review.googlesource.com/901043 Commit-Queue: Noel Gordon <noel@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#534964} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: c376937e3709ddef4b97621a58039a21b67faa6e
2017-11-30Revert "Using ARMv8 CRC32 specific instruction"Boris Sazonov
This reverts commit 35988c821c051a57e30c76f9fcd87b7b677bd9bd. Reason for revert: broke build ('cpu-features.h' not found) https://uberchromegw.corp.google.com/i/internal.client.clank/builders/x64-builder/builds/13697 Original change's description: > Using ARMv8 CRC32 specific instruction > > CRC32 affects performance for both image decompression (PNG) > as also in general browsing while accessing websites that serve > content using compression (i.e. Content-Encoding: gzip). > > This patch implements an optimized CRC32 function using the > dedicated instruction available in ARMv8. This instruction is available > in new Android devices featuring an ARMv8 SoC, like Nexus 5x and > Google Pixel. > > It should be between 6x (A53: 116ms X 22ms for a 4Kx4Kx4 buffer) to > 10x faster (A72: 91ms x 9ms) than the C implementation currently used > by zlib. > > PNG decoding performance gains should be around 5-9%. > > Finally it also introduces code to perform the ARM CPU features detection > using getauxval()@Linux/CrOS or android_getCpuFeatures(). We pre-built > and link the CRC32 instruction dependent code but will decide if to > use it at run time. > > If the feature is not supported, we fallback to the C implementation. > > This approach allows to use the instruction in both 32bits and 64bits > builds and works fine either in ARMv7 or ARMv8 processor. I tested the > generated Chromium apk in both a ARMv7 (Nexus 4 and 6) and ARMv8 (Nexus 5x and > Google Pixel). > > Change-Id: I069408ebc06c49a3c2be4ba3253319e025ee09d7 > Bug: 709716 > Reviewed-on: https://chromium-review.googlesource.com/612629 > Reviewed-by: Chris Blume <cblume@chromium.org> > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > Cr-Commit-Position: refs/heads/master@{#520377} TBR=agl@chromium.org,noel@chromium.org,cavalcantii@chromium.org,cblume@chromium.org,mtklein@chromium.org,adenilson.cavalcanti@arm.com Change-Id: Ief2c32df5c8a37635f937cd6a671f5574f5a53a3 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 709716 Reviewed-on: https://chromium-review.googlesource.com/799930 Reviewed-by: Chris Blume <cblume@chromium.org> Reviewed-by: Boris Sazonov <bsazonov@chromium.org> Commit-Queue: Boris Sazonov <bsazonov@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#520497} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: e7d9a4649bde6f047105d29f0026dd8c3d54143a
2017-11-30Using ARMv8 CRC32 specific instructionAdenilson Cavalcanti
CRC32 affects performance for both image decompression (PNG) as also in general browsing while accessing websites that serve content using compression (i.e. Content-Encoding: gzip). This patch implements an optimized CRC32 function using the dedicated instruction available in ARMv8. This instruction is available in new Android devices featuring an ARMv8 SoC, like Nexus 5x and Google Pixel. It should be between 6x (A53: 116ms X 22ms for a 4Kx4Kx4 buffer) to 10x faster (A72: 91ms x 9ms) than the C implementation currently used by zlib. PNG decoding performance gains should be around 5-9%. Finally it also introduces code to perform the ARM CPU features detection using getauxval()@Linux/CrOS or android_getCpuFeatures(). We pre-built and link the CRC32 instruction dependent code but will decide if to use it at run time. If the feature is not supported, we fallback to the C implementation. This approach allows to use the instruction in both 32bits and 64bits builds and works fine either in ARMv7 or ARMv8 processor. I tested the generated Chromium apk in both a ARMv7 (Nexus 4 and 6) and ARMv8 (Nexus 5x and Google Pixel). Change-Id: I069408ebc06c49a3c2be4ba3253319e025ee09d7 Bug: 709716 Reviewed-on: https://chromium-review.googlesource.com/612629 Reviewed-by: Chris Blume <cblume@chromium.org> Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#520377} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 35988c821c051a57e30c76f9fcd87b7b677bd9bd
2017-09-29zlib adler_simd.cNoel Gordon
Add SSSE3 implementation of the adler32 checksum, suitable for both large workloads, and small workloads commonly seen during PNG image decoding. Add a NEON implementation. Speed is comparable to the serial adler32 computation but near 64 bytes of input data, the SIMD code paths begin to be faster than the serial path: 3x faster at 256 bytes of input data, to ~8x faster for 1M of input data (~4x on ARMv8 NEON). For the PNG 140 image corpus, PNG decoding speed is ~8% faster on average on the desktop machines tested, and ~2% on an ARMv8 Pixel C Android (N) tablet, https://crbug.com/762564#c41 Update x86.{c,h} to runtime detect SSSE3 support and use it to enable the adler32_simd code path and update inflate.c to call x86_check_features(). Update the name mangler file names.h for the new symbols added, add FIXME about simd.patch. Ignore data alignment in the SSSE3 case since unaligned access is no longer penalized on current generation Intel CPU. Use it in the NEON case however to avoid the extra costs of unaligned memory access on ARMv8/v7. NEON credits: the v_s1/s2 vector component accumulate code was provided by Adenilson Cavalcanti. The uint16 column vector sum code is from libdeflate with corrections to process NMAX input bytes which improves performance by 3% for large buffers. Update BUILD.gn to put the code in its own source set, and add it conditionally to the zlib library build rule. On ARM, build the SIMD with max-speed config to produce the smallest code. No change in behavior, covered by many existing tests. Bug: 762564 Change-Id: I14a39940ae113b5a67ba70a99c3741e289b1796b Reviewed-on: https://chromium-review.googlesource.com/660019 Commit-Queue: Chris Blume <cblume@chromium.org> Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by: Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#505447} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 09b784fd12f255a9da38107ac6e0386f4dde6d68
2017-09-28Zlib patch: prevent uninitialized use of state->checkAdenilson Cavalcanti
No need to call the Adler32 checksum function, just set the struct field to the expected value. Plus some cleanup in the README file (the idea is that this file won't be touched for new patches). Upstream bug: madler/zlib#245 Bug: 697481 Change-Id: Ic495c92c9ca1b5ab8a4d23a8ae29141f4617c091 Reviewed-on: https://chromium-review.googlesource.com/688501 Reviewed-by: Chris Blume <cblume@chromium.org> Commit-Queue: Chris Blume <cblume@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#504897} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: ee376c65abdd5afe787bfb63af9f2e82fdc35c2e
2017-09-19Zlib: Use defines for inffastChris Blume
Zlib's inffast uses a handful of magic numbers. It would be easier to read and maintain if these magic numbers were instead #defines. NigelTao@ wrote this code to clean up the magic numbers in https://chromium-review.googlesource.com/c/chromium/src/+/601694 Nigel gave me permission to make a separate pull request to separate out just the magic number cleaning. BUG=764431 Change-Id: I0a62e31e98d4f3afcc64bd096e62a4b4b175644b Reviewed-on: https://chromium-review.googlesource.com/663424 Commit-Queue: Chris Blume <cblume@google.com> Reviewed-by: Adenilson Cavalcanti <cavalcantii@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#502982} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 5d7c2b78db0e96c769dee8d4ed3a9aeac8ef21d5
2017-09-16Revert "Zlib patch: prevent uninitialized use of state->check"Mike Klein
This reverts commit f4b484415281f09d0bbc0880f5d41dbdde96c209. Reason for revert: need to revert previous CL, which this depends on (because it added contrib/arm/inflate.c). Original change's description: > Zlib patch: prevent uninitialized use of state->check > > No need to call the Adler32 checksum function, just set the > struct field to the expected value. > > Upstream bug: madler/zlib#245 > > Bug: chromium:697481 > Change-Id: Ib972cc2507c8e7ca0b0b48464db33880ef960fb8 > Reviewed-on: https://chromium-review.googlesource.com/644505 > Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> > Reviewed-by: Mike Klein <mtklein@chromium.org> > Cr-Commit-Position: refs/heads/master@{#498998} TBR=scroggo@chromium.org,agl@chromium.org,cavalcantii@chromium.org,npm@chromium.org,cblume@chromium.org,mtklein@chromium.org,adenilson.cavalcanti@arm.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:697481 Change-Id: I12c6ca6867d1d7e97c9f372f2d592ed75d51f093 Reviewed-on: https://chromium-review.googlesource.com/669480 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Klein <mtklein@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#502449} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 4e96bed9f68c0d6ae106c1042a3041eafcf59b9a
2017-08-31Zlib patch: prevent uninitialized use of state->checkAdenilson Cavalcanti
No need to call the Adler32 checksum function, just set the struct field to the expected value. Upstream bug: madler/zlib#245 Bug: chromium:697481 Change-Id: Ib972cc2507c8e7ca0b0b48464db33880ef960fb8 Reviewed-on: https://chromium-review.googlesource.com/644505 Commit-Queue: Adenilson Cavalcanti <cavalcantii@chromium.org> Reviewed-by: Mike Klein <mtklein@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#498998} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: f4b484415281f09d0bbc0880f5d41dbdde96c209
2017-08-08Zlib patch: prevent uninitialized use of state->checkNicolas Pena
This CL fixes a security bug in zlib. It was reported upstream long ago and the testcase was shared upstream but it's yet unsolved. As a fix, state->check is set to the same value as the adler32 of an empty string. Upstream bug: https://github.com/madler/zlib/issues/245 Bug: chromium:697481 Change-Id: I916c33edd37a9d2957426d8428bd20d05294dafe Reviewed-on: https://chromium-review.googlesource.com/601193 Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Adam Langley <agl@chromium.org> Commit-Queue: Nicolás Peña <npm@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#492687} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 23af53e80e562441db3d061816468eeda17025a6
2017-02-15Update zlib to 1.2.11mark
Reapply and regenerate all local patches to upstream zlib 1.2.11 Explicitly specify 9 as the minimum windowBits value (representing a 512-byte window) during compression in net/websockets even when 8 (representing 256) is received. This was previously silently done during compression. Because of how zlib's deflate is implemented, when windowBits is 9, it will produce a stream that can be decompressed with a 250-byte or larger window. Changes in 1.2.9 (31 Dec 2016) - Fix contrib/minizip to permit unzipping with desktop API [Zouzou] - Improve contrib/blast to return unused bytes - Assure that gzoffset() is correct when appending - Improve compress() and uncompress() to support large lengths - Fix bug in test/example.c where error code not saved - Remedy Coverity warning [Randers-Pehrson] - Improve speed of gzprintf() in transparent mode - Fix inflateInit2() bug when windowBits is 16 or 32 - Change DEBUG macro to ZLIB_DEBUG - Avoid uninitialized access by gzclose_w() - Allow building zlib outside of the source directory - Fix bug that accepted invalid zlib header when windowBits is zero - Fix gzseek() problem on MinGW due to buggy _lseeki64 there - Loop on write() calls in gzwrite.c in case of non-blocking I/O - Add --warn (-w) option to ./configure for more compiler warnings - Reject a window size of 256 bytes if not using the zlib wrapper - Fix bug when level 0 used with Z_HUFFMAN or Z_RLE - Add --debug (-d) option to ./configure to define ZLIB_DEBUG - Fix bugs in creating a very large gzip header - Add uncompress2() function, which returns the input size used - Assure that deflateParams() will not switch functions mid-block - Dramatically speed up deflation for level 0 (storing) - Add gzfread(), duplicating the interface of fread() - Add gzfwrite(), duplicating the interface of fwrite() - Add deflateGetDictionary() function - Use snprintf() for later versions of Microsoft C - Fix *Init macros to use z_ prefix when requested - Replace as400 with os400 for OS/400 support [Monnerat] - Add crc32_z() and adler32_z() functions with size_t lengths - Update Visual Studio project files [AraHaan] Changes in 1.2.10 (2 Jan 2017) - Avoid warnings on snprintf() return value - Fix bug in deflate_stored() for zero-length input - Fix bug in gzwrite.c that produced corrupt gzip files - Remove files to be installed before copying them in Makefile.in - Add warnings when compiling with assembler code Changes in 1.2.11 (15 Jan 2017) - Fix deflate stored bug when pulling last block from window - Permit immediate deflateParams changes before any deflate input BUG=691074, 691075 Review-Url: https://codereview.chromium.org/2690623003 Cr-Original-Commit-Position: refs/heads/master@{#450585} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 6d9a6251dfe87183075dc16cfa134e41dc4cee0d
2016-06-23Update Zlib to version 1.2.8jiadong.zhu
merge the latest open source zlib into chromium external projects Version 1.2.8 fixes a very rare bug in decompression. All users are encouraged to upgrade immediately. Version 1.2.8 also has these improvements: - Add new inflateGetDictionary() function - Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream. - Fix bug in gzclose() when gzwrite() runs out of memory Version 1.2.7 has many portability improvements over 1.2.6, and has these enhancements: - Fix bug in gzclose_w() when gzwrite() fails to allocate memory - Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen() - Add gzopen_w() in Windows for wide character path names - Fix type mismatch between get_crc_table() and crc_table Version 1.2.6 has many changes over 1.2.5, including these improvements: - gzread() can now read a file that is being written concurrently - gzgetc() is now a macro for increased speed - Added a 'T' option to gzopen() for transparent writing (no compression) - Added deflatePending() to return the amount of pending output - Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode - deflatePrime() can now insert bits in the middle of the stream - ./configure now creates a configure.log file with all of the results - Added a ./configure --solo option to compile zlib with no dependency on any libraries - Fixed a problem with large file support macros - Fixed a bug in contrib/puff - Many portability improvements BUG=610615 R=gavinp@chromium.org Review-Url: https://codereview.chromium.org/2084863002 Cr-Original-Commit-Position: refs/heads/master@{#401538} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: ca1c569cff20aa43a42816791744d847c7d788de
2016-06-20Revert of Update Zlib to version 1.2.8 (patchset #10 id:220001 of ↵jmadill
https://codereview.chromium.org/1955383002/ ) Reason for revert: Broke the Windows Debug GPU FYI builder: https://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Win%20Builder%20%28dbg%29/builds/41421 fx_zlib.gzlib.obj : error LNK2005: _gzopen_w already defined in zlib.gzlib.obj initial\chrome.dll : fatal error LNK1169: one or more multiply defined symbols found Possibly because they use shared components with a GYP build. Original issue's description: > Update Zlib to version 1.2.8 > > merge the latest open source zlib into chromium external projects > > Version 1.2.8 fixes a very rare bug in decompression. All users are encouraged to upgrade immediately. Version 1.2.8 also has these improvements: > - Add new inflateGetDictionary() function > - Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream. > - Fix bug in gzclose() when gzwrite() runs out of memory > Version 1.2.7 has many portability improvements over 1.2.6, and has these enhancements: > - Fix bug in gzclose_w() when gzwrite() fails to allocate memory > - Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen() > - Add gzopen_w() in Windows for wide character path names > - Fix type mismatch between get_crc_table() and crc_table > Version 1.2.6 has many changes over 1.2.5, including these improvements: > - gzread() can now read a file that is being written concurrently > - gzgetc() is now a macro for increased speed > - Added a 'T' option to gzopen() for transparent writing (no compression) > - Added deflatePending() to return the amount of pending output > - Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode > - deflatePrime() can now insert bits in the middle of the stream > - ./configure now creates a configure.log file with all of the results > - Added a ./configure --solo option to compile zlib with no dependency on any libraries > - Fixed a problem with large file support macros > - Fixed a bug in contrib/puff > - Many portability improvements > > BUG=610615 > R=agl@chromium.org > R=gavinp@chromium.org > > Committed: https://crrev.com/a50849ae9ba1b2fad47905db521463b3bf085883 > Cr-Commit-Position: refs/heads/master@{#400647} TBR=agl@chromium.org,gavinp@chromium.org,khasim.mohammed@linaro.org,jiadong.zhu@linaro.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=610615 Review-Url: https://codereview.chromium.org/2079313002 Cr-Original-Commit-Position: refs/heads/master@{#400670} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 43770253ccc0425c4edde966e56b3e68955cc4d3
2016-06-20Update Zlib to version 1.2.8jiadong.zhu
merge the latest open source zlib into chromium external projects Version 1.2.8 fixes a very rare bug in decompression. All users are encouraged to upgrade immediately. Version 1.2.8 also has these improvements: - Add new inflateGetDictionary() function - Fix bug where gzopen() immediately followed by gzclose() would write an empty file instead of an empty gzip stream. - Fix bug in gzclose() when gzwrite() runs out of memory Version 1.2.7 has many portability improvements over 1.2.6, and has these enhancements: - Fix bug in gzclose_w() when gzwrite() fails to allocate memory - Add "x" (O_EXCL) and "e" (O_CLOEXEC) modes support to gzopen() - Add gzopen_w() in Windows for wide character path names - Fix type mismatch between get_crc_table() and crc_table Version 1.2.6 has many changes over 1.2.5, including these improvements: - gzread() can now read a file that is being written concurrently - gzgetc() is now a macro for increased speed - Added a 'T' option to gzopen() for transparent writing (no compression) - Added deflatePending() to return the amount of pending output - Allow deflateSetDictionary() and inflateSetDictionary() at any time in raw mode - deflatePrime() can now insert bits in the middle of the stream - ./configure now creates a configure.log file with all of the results - Added a ./configure --solo option to compile zlib with no dependency on any libraries - Fixed a problem with large file support macros - Fixed a bug in contrib/puff - Many portability improvements BUG=610615 R=agl@chromium.org R=gavinp@chromium.org Review-Url: https://codereview.chromium.org/1955383002 Cr-Original-Commit-Position: refs/heads/master@{#400647} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: a50849ae9ba1b2fad47905db521463b3bf085883
2011-12-12Update zlib to 1.2.5.hbono@chromium.org
This change applies upstream patches from 1.2.3 to 1.2.5. BUG=30704,39219 TEST=build and run Chrome without any valgrind errors. Review URL: http://codereview.chromium.org/8806004 Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: f159d38cb10c746d54e1f380c94878dbeb935b01
2008-07-27Add third_party to the repository.initial.commit
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 584cd5cbd7be997400ccb8db24ae5410b0b88117