(currentTree)
| 315 | }; |
| 316 | |
| 317 | function DecodeValue(currentTree) { |
| 318 | var len, i, |
| 319 | xtreepos=0, |
| 320 | X = currentTree[xtreepos], |
| 321 | b; |
| 322 | |
| 323 | /* decode one symbol of the data */ |
| 324 | while(1) { |
| 325 | b=readBit(); |
| 326 | if (debug) |
| 327 | util.debug("b=" + b); |
| 328 | if(b) { |
| 329 | if(!(X.b1 & 0x8000)){ |
| 330 | if (debug) |
| 331 | util.debug("ret1"); |
| 332 | return X.b1; /* If leaf node, return data */ |
| 333 | } |
| 334 | X = X.jump; |
| 335 | len = currentTree.length; |
| 336 | for (i=0;i<len;i++){ |
| 337 | if (currentTree[i]===X){ |
| 338 | xtreepos=i; |
| 339 | break; |
| 340 | } |
| 341 | } |
| 342 | //xtreepos++; |
| 343 | } else { |
| 344 | if(!(X.b0 & 0x8000)){ |
| 345 | if (debug) |
| 346 | util.debug("ret2"); |
| 347 | return X.b0; /* If leaf node, return data */ |
| 348 | } |
| 349 | //X++; //?????????????????? |
| 350 | xtreepos++; |
| 351 | X = currentTree[xtreepos]; |
| 352 | } |
| 353 | } |
| 354 | if (debug) |
| 355 | util.debug("ret3"); |
| 356 | return -1; |
| 357 | }; |
| 358 | |
| 359 | function DeflateLoop() { |
| 360 | var last, c, type, i, len; |
no test coverage detected