aharvey Mon, 08 Nov 2010 09:35:33 +0000 Revision: http://svn.php.net/viewvc?view=revision&revision=305193
Log: Implemented FR #53213 (Adler32 algorithm is very slow). Patch by zavasek at yandex dot ru. Bug: http://bugs.php.net/53213 (error getting bug information) Changed paths: U php/php-src/trunk/NEWS U php/php-src/trunk/ext/hash/hash_adler32.c Modified: php/php-src/trunk/NEWS =================================================================== --- php/php-src/trunk/NEWS 2010-11-08 09:29:15 UTC (rev 305192) +++ php/php-src/trunk/NEWS 2010-11-08 09:35:33 UTC (rev 305193) @@ -124,6 +124,8 @@ - Implemented FR #53238 (Make third parameter of preg_match_all optional). (Adam) +- Implemented FR #53213 (Adler32 algorithm is very slow). + (zavasek at yandex dot ru) - Implemented FR #52555 (Ability to get HTTP response code). (Paul Dragoonis) - Implemented FR #51295 (SQLite3::busyTimeout not existing). (Mark) - Implemented FR #49366 (Make slash escaping optional in json_encode()). (Adam) Modified: php/php-src/trunk/ext/hash/hash_adler32.c =================================================================== --- php/php-src/trunk/ext/hash/hash_adler32.c 2010-11-08 09:29:15 UTC (rev 305192) +++ php/php-src/trunk/ext/hash/hash_adler32.c 2010-11-08 09:35:33 UTC (rev 305193) @@ -34,9 +34,16 @@ s[0] = context->state & 0xffff; s[1] = (context->state >> 16) & 0xffff; for (i = 0; i < len; ++i) { - s[0] = (s[0] + input[i]) % 65521; - s[1] = (s[1] + s[0]) % 65521; + s[0] += input[i]; + s[1] += s[0]; + if (s[1]>=0x7fffffff) + { + s[0] = s[0] % 65521; + s[1] = s[1] % 65521; + } } + s[0] = s[0] % 65521; + s[1] = s[1] % 65521; context->state = s[0] + (s[1] << 16); }
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php