… | |
… | |
330 | int negative = data [0] & 0x80; |
330 | int negative = data [0] & 0x80; |
331 | |
331 | |
332 | UV val = negative ? -1 : 0; // copy signbit to all bits |
332 | UV val = negative ? -1 : 0; // copy signbit to all bits |
333 | |
333 | |
334 | if (len > UVSIZE + (!negative && !*data)) |
334 | if (len > UVSIZE + (!negative && !*data)) |
335 | //printf ("len %d > %d + (!%d && !%d) = %d\n", len, UVSIZE, negative, *data, UVSIZE + (!negative && !*data));//D |
|
|
336 | error ("INTEGER overflow"); |
335 | error ("INTEGER overflow"); |
337 | |
336 | |
338 | do |
337 | do |
339 | val = (val << 8) | *data++; |
338 | val = (val << 8) | *data++; |
340 | while (--len); |
339 | while (--len); |