Hi Ilia,

Probably your fix is not accurate, because it breaks ext/gmp/tests/021.phpt, however it shouldn't from my point of view.


BTW my math knowledge is not excellent.

Could you please take a look.
May be the fix should be done only for gmp_div_r() and shouldn't affect other functions.

Thanks. Dmitry.

Ilia Alshanetsky wrote:
iliaa           Wed Jan 30 18:27:04 2008 UTC

  Modified files:              (Branch: PHP_5_2)
/php-src/ext/gmp gmp.c /php-src NEWS Log: MFB: Fixed bug #43981 (gmp_div_r() does not preserve the sign of 1st
  argument)
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/gmp.c?r1=1.49.2.2.2.12&r2=1.49.2.2.2.13&diff_format=u
Index: php-src/ext/gmp/gmp.c
diff -u php-src/ext/gmp/gmp.c:1.49.2.2.2.12 php-src/ext/gmp/gmp.c:1.49.2.2.2.13
--- php-src/ext/gmp/gmp.c:1.49.2.2.2.12 Mon Dec 31 07:20:06 2007
+++ php-src/ext/gmp/gmp.c       Wed Jan 30 18:27:03 2008
@@ -552,6 +552,9 @@
        if (use_ui && gmp_ui_op) {
                if (allow_ui_return) {
                        long_result = gmp_ui_op(*gmpnum_result, *gmpnum_a, 
(unsigned long)Z_LVAL_PP(b_arg));
+                       if (mpz_sgn(*gmpnum_a) == -1) {
+                               long_result = -long_result;
+                       }
                } else {
                        gmp_ui_op(*gmpnum_result, *gmpnum_a, (unsigned 
long)Z_LVAL_PP(b_arg));
                }
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1067&r2=1.2027.2.547.2.1068&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.1067 php-src/NEWS:1.2027.2.547.2.1068
--- php-src/NEWS:1.2027.2.547.2.1067    Wed Jan 30 15:30:44 2008
+++ php-src/NEWS        Wed Jan 30 18:27:03 2008
@@ -8,6 +8,8 @@
   which to group by data is specified. (Ilia)
 - Upgraded PCRE to version 7.6 (Nuno)
+- Fixed bug #43981 (gmp_div_r() does not preserve the sign of 1st argument).
+  (Ilia)
 - Fixed bug #43954 (Memory leak when sending the same HTTP status code
   multiple times). (Scott)
- Fixed bug #43927 (koi8r is missing from html_entity_decode()).

--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to