Fix checkstack error: lib/decompress_bunzip2.c: In function `get_next_block': lib/decompress_bunzip2.c:511: warning: the frame size of 1932 bytes is larger than 1024 bytes byteCount, symToByte, and mtfSymbol cannot be declared static or allocated dynamically so place them in the bunzip_data struct.
Unified · Split
| @@ -107,6 +107,8 @@ struct bunzip_data { · 106 unmodified lines | |||
| 107 | unsigned char selectors[32768]; /* nSelectors = 15 bits */ | 107 | unsigned char selectors[32768]; /* nSelectors = 15 bits */ |
| 108 | struct group_data groups[MAX_GROUPS]; /* Huffman coding tables */ | 108 | struct group_data groups[MAX_GROUPS]; /* Huffman coding tables */ |
| 109 | int io_error; /* non-zero if we have IO error */ | 109 | int io_error; /* non-zero if we have IO error */ |
| 110 | int byteCount[256]; | ||
| 111 | unsigned char symToByte[256], mtfSymbol[256]; | ||
| 110 | }; | 112 | }; |
| 111 | 113 | ||
| 112 | 114 | ||
| @@ -158,14 +160,16 @@ static int INIT get_next_block(struct bunzip_data *bd) · 45 unmodified lines | |||
| 158 | int *base = NULL; | 160 | int *base = NULL; |
| 159 | int *limit = NULL; | 161 | int *limit = NULL; |
| 160 | int dbufCount, nextSym, dbufSize, groupCount, selector, | 162 | int dbufCount, nextSym, dbufSize, groupCount, selector, |
| 161 | i, j, k, t, runPos, symCount, symTotal, nSelectors, | 163 | i, j, k, t, runPos, symCount, symTotal, nSelectors, *byteCount; |
| 162 | byteCount[256]; | 164 | unsigned char uc, *symToByte, *mtfSymbol, *selectors; |
| 163 | unsigned char uc, symToByte[256], mtfSymbol[256], *selectors; | ||
| 164 | unsigned int *dbuf, origPtr; | 165 | unsigned int *dbuf, origPtr; |
| 165 | 166 | ||
| 166 | dbuf = bd->dbuf; | 167 | dbuf = bd->dbuf; |
| 167 | dbufSize = bd->dbufSize; | 168 | dbufSize = bd->dbufSize; |
| 168 | selectors = bd->selectors; | 169 | selectors = bd->selectors; |
| 170 | byteCount = bd->byteCount; | ||
| 171 | symToByte = bd->symToByte; | ||
| 172 | mtfSymbol = bd->mtfSymbol; | ||
| 169 | 173 | ||
| 170 | /* Read in header signature and CRC, then validate signature. | 174 | /* Read in header signature and CRC, then validate signature. |
| 171 | (last block signature means CRC is for whole file, return now) */ | 175 | (last block signature means CRC is for whole file, return now) */ |