1 Patch origin: in-house 2 Patch status: inffast.c part: submitted back to community without feedback 3 Patch status: deflate.c part: Solaris-specific; not suitable for upstream 4 5 --- zlib-1.2.8/zlib.h 2013-04-28 17:23:49.000000000 -0700 6 +++ zlib-1.2.8/zlib.h 2014-04-18 05:32:31.316290241 -0700 7 @@ -37,8 +37,8 @@ 8 extern "C" { 9 #endif 10 11 -#define ZLIB_VERSION "1.2.8" 12 -#define ZLIB_VERNUM 0x1280 13 +#define ZLIB_VERSION "1.2.8-T4mods" 14 +#define ZLIB_VERNUM 0x128f 15 #define ZLIB_VER_MAJOR 1 16 #define ZLIB_VER_MINOR 2 17 #define ZLIB_VER_REVISION 8 18 --- zlib-1.2.8/inffast.c 2013-03-24 22:47:59.000000000 -0700 19 +++ zlib-1.2.8/inffast.c 2014-02-28 01:57:57.075708259 -0800 20 @@ -87,7 +87,7 @@ 21 code const FAR *dcode; /* local strm->distcode */ 22 unsigned lmask; /* mask for first level of length codes */ 23 unsigned dmask; /* mask for first level of distance codes */ 24 - code here; /* retrieved table entry */ 25 + code *here; /* retrieved table entry */ 26 unsigned op; /* code bits, operation, extra bits, or */ 27 /* window position, window bytes to copy */ 28 unsigned len; /* match length, unused bytes */ 29 @@ -124,20 +124,20 @@ 30 hold += (unsigned long)(PUP(in)) << bits; 31 bits += 8; 32 } 33 - here = lcode[hold & lmask]; 34 + here = (code *)(&(lcode[hold & lmask])); 35 dolen: 36 - op = (unsigned)(here.bits); 37 + op = (unsigned)(here->bits); 38 hold >>= op; 39 bits -= op; 40 - op = (unsigned)(here.op); 41 + op = (unsigned)(here->op); 42 if (op == 0) { /* literal */ 43 - Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ? 44 + Tracevv((stderr, here->val >= 0x20 && here->val < 0x7f ? 45 "inflate: literal '%c'\n" : 46 - "inflate: literal 0x%02x\n", here.val)); 47 - PUP(out) = (unsigned char)(here.val); 48 + "inflate: literal 0x%02x\n", here->val)); 49 + PUP(out) = (unsigned char)(here->val); 50 } 51 else if (op & 16) { /* length base */ 52 - len = (unsigned)(here.val); 53 + len = (unsigned)(here->val); 54 op &= 15; /* number of extra bits */ 55 if (op) { 56 if (bits < op) { 57 @@ -155,14 +155,14 @@ 58 hold += (unsigned long)(PUP(in)) << bits; 59 bits += 8; 60 } 61 - here = dcode[hold & dmask]; 62 + here = (code *)(&(dcode[hold & dmask])); 63 dodist: 64 - op = (unsigned)(here.bits); 65 + op = (unsigned)(here->bits); 66 hold >>= op; 67 bits -= op; 68 - op = (unsigned)(here.op); 69 + op = (unsigned)(here->op); 70 if (op & 16) { /* distance base */ 71 - dist = (unsigned)(here.val); 72 + dist = (unsigned)(here->val); 73 op &= 15; /* number of extra bits */ 74 if (bits < op) { 75 hold += (unsigned long)(PUP(in)) << bits; 76 @@ -281,7 +281,7 @@ 77 } 78 } 79 else if ((op & 64) == 0) { /* 2nd level distance code */ 80 - here = dcode[here.val + (hold & ((1U << op) - 1))]; 81 + here = (code *)(&(dcode[here->val + (hold & ((1U << op) - 1))])); 82 goto dodist; 83 } 84 else { 85 @@ -291,7 +291,7 @@ 86 } 87 } 88 else if ((op & 64) == 0) { /* 2nd level length code */ 89 - here = lcode[here.val + (hold & ((1U << op) - 1))]; 90 + here = (code *)(&(lcode[here->val + (hold & ((1U << op) - 1))])); 91 goto dolen; 92 } 93 else if (op & 32) { /* end-of-block */ 94 --- zlib-1.2.8/deflate.c 2013-04-28 15:57:10.000000000 -0700 95 +++ zlib-1.2.8/deflate.c 2014-02-28 02:32:02.517988885 -0800 96 @@ -60,6 +60,7 @@ 97 copyright string in the executable of your product. 98 */ 99 100 +#ifndef LONGEST_MATCH_ONLY 101 /* =========================================================================== 102 * Function prototypes. 103 */ 104 @@ -89,13 +90,18 @@ 105 void match_init OF((void)); /* asm code initialization */ 106 uInt longest_match OF((deflate_state *s, IPos cur_match)); 107 #else 108 +#ifdef ORIG_LONGEST_MATCH 109 local uInt longest_match OF((deflate_state *s, IPos cur_match)); 110 +#else 111 +uInt longest_match OF((deflate_state *s, IPos cur_match)); 112 +#endif 113 #endif 114 115 #ifdef DEBUG 116 local void check_match OF((deflate_state *s, IPos start, IPos match, 117 int length)); 118 #endif 119 +#endif /* ! LONGEST_MATCH_ONLY */ 120 121 /* =========================================================================== 122 * Local data 123 @@ -104,6 +110,7 @@ 124 #define NIL 0 125 /* Tail of hash chains */ 126 127 +#ifndef LONGEST_MATCH_ONLY 128 #ifndef TOO_FAR 129 # define TOO_FAR 4096 130 #endif 131 @@ -1130,7 +1137,9 @@ 132 #endif 133 #endif 134 } 135 +#endif /* ! LONGEST_MATCH_ONLY */ 136 137 +#if defined(ORIG_LONGEST_MATCH) || defined(ORIG_LONGEST_MATCH_GLOBAL) 138 #ifndef FASTEST 139 /* =========================================================================== 140 * Set match_start to the longest match starting at the given string and 141 @@ -1145,7 +1154,11 @@ 142 /* For 80x86 and 680x0, an optimized version will be provided in match.asm or 143 * match.S. The code will be functionally equivalent. 144 */ 145 +#ifdef ORIG_LONGEST_MATCH_GLOBAL 146 +uInt longest_match(s, cur_match) 147 +#else 148 local uInt longest_match(s, cur_match) 149 +#endif 150 deflate_state *s; 151 IPos cur_match; /* current match */ 152 { 153 @@ -1288,6 +1301,7 @@ 154 return s->lookahead; 155 } 156 #endif /* ASMV */ 157 +#endif /* ORIG_LONGEST_MATCHT */ 158 159 #else /* FASTEST */ 160 161 @@ -1349,6 +1363,7 @@ 162 163 #endif /* FASTEST */ 164 165 +#ifndef LONGEST_MATCH_ONLY 166 #ifdef DEBUG 167 /* =========================================================================== 168 * Check that the match at match_start is indeed a match. 169 @@ -1965,3 +1980,4 @@ 170 FLUSH_BLOCK(s, 0); 171 return block_done; 172 } 173 +#endif /* ! LONGEST_MATCH_ONLY */