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 | 107 | unsigned char selectors[32768]; /* nSelectors = 15 bits */ |
| 108 | 108 | struct group_data groups[MAX_GROUPS]; /* Huffman coding tables */ |
| 109 | 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 | 160 | int *base = NULL; |
| 159 | 161 | int *limit = NULL; |
| 160 | 162 | int dbufCount, nextSym, dbufSize, groupCount, selector, |
| 161 | − i, j, k, t, runPos, symCount, symTotal, nSelectors, | |
| 162 | − byteCount[256]; | |
| 163 | − unsigned char uc, symToByte[256], mtfSymbol[256], *selectors; | |
| 163 | + i, j, k, t, runPos, symCount, symTotal, nSelectors, *byteCount; | |
| 164 | + unsigned char uc, *symToByte, *mtfSymbol, *selectors; | |
| 164 | 165 | unsigned int *dbuf, origPtr; |
| 165 | 166 | |
| 166 | 167 | dbuf = bd->dbuf; |
| 167 | 168 | dbufSize = bd->dbufSize; |
| 168 | 169 | selectors = bd->selectors; |
| 170 | + byteCount = bd->byteCount; | |
| 171 | + symToByte = bd->symToByte; | |
| 172 | + mtfSymbol = bd->mtfSymbol; | |
| 169 | 173 | |
| 170 | 174 | /* Read in header signature and CRC, then validate signature. |
| 171 | 175 | (last block signature means CRC is for whole file, return now) */ |