diff options
Diffstat (limited to '')
| -rw-r--r-- | lobject.c | 8 |
1 files changed, 4 insertions, 4 deletions
| @@ -35,14 +35,14 @@ int luaO_log2 (unsigned int x) { | |||
| 35 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, | 35 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, |
| 36 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, | 36 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, |
| 37 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, | 37 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, |
| 38 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, | 38 | 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7 |
| 39 | }; | 39 | }; |
| 40 | if (x & 0xffff0000) { | 40 | if (x >= 0x00010000) { |
| 41 | if (x & 0xff000000) return log_8[((x>>24) & 0xff) - 1]+24; | 41 | if (x >= 0x01000000) return log_8[((x>>24) & 0xff) - 1]+24; |
| 42 | else return log_8[((x>>16) & 0xff) - 1]+16; | 42 | else return log_8[((x>>16) & 0xff) - 1]+16; |
| 43 | } | 43 | } |
| 44 | else { | 44 | else { |
| 45 | if (x & 0x0000ff00) return log_8[((x>>8) & 0xff) - 1]+8; | 45 | if (x >= 0x00000100) return log_8[((x>>8) & 0xff) - 1]+8; |
| 46 | else if (x) return log_8[(x & 0xff) - 1]; | 46 | else if (x) return log_8[(x & 0xff) - 1]; |
| 47 | return -1; /* special `log' for 0 */ | 47 | return -1; /* special `log' for 0 */ |
| 48 | } | 48 | } |
