| @@ 162-177 (lines=16) @@ | ||
| 159 | * @param string $number |
|
| 160 | * @return string The crc32 polynomial of $number |
|
| 161 | */ |
|
| 162 | if (!function_exists('smf_crc32')) |
|
| 163 | { |
|
| 164 | function smf_crc32($number) |
|
| 165 | { |
|
| 166 | $crc = crc32($number); |
|
| 167 | ||
| 168 | if ($crc & 0x80000000) |
|
| 169 | { |
|
| 170 | $crc ^= 0xffffffff; |
|
| 171 | $crc += 1; |
|
| 172 | $crc = -$crc; |
|
| 173 | } |
|
| 174 | ||
| 175 | return $crc; |
|
| 176 | } |
|
| 177 | } |
|
| 178 | ||
| 179 | ?> |
|
| @@ 3257-3279 (lines=23) @@ | ||
| 3254 | return $data; |
|
| 3255 | } |
|
| 3256 | ||
| 3257 | if (!function_exists('smf_crc32')) |
|
| 3258 | { |
|
| 3259 | /** |
|
| 3260 | * crc32 doesn't work as expected on 64-bit functions - make our own. |
|
| 3261 | * https://php.net/crc32#79567 |
|
| 3262 | * |
|
| 3263 | * @param string $number |
|
| 3264 | * @return string The crc32 |
|
| 3265 | */ |
|
| 3266 | function smf_crc32($number) |
|
| 3267 | { |
|
| 3268 | $crc = crc32($number); |
|
| 3269 | ||
| 3270 | if ($crc & 0x80000000) |
|
| 3271 | { |
|
| 3272 | $crc ^= 0xffffffff; |
|
| 3273 | $crc += 1; |
|
| 3274 | $crc = -$crc; |
|
| 3275 | } |
|
| 3276 | ||
| 3277 | return $crc; |
|
| 3278 | } |
|
| 3279 | } |
|
| 3280 | ||
| 3281 | ?> |
|