tony2001                Thu Apr 26 13:44:02 2007 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/gmp/tests      011.phpt 

  Modified files:              
    /php-src    NEWS 
    /php-src/ext/gmp    gmp.c 
  Log:
  MFH: add test & GMP_VERSION constant
  do not allow zero operand in gmp_divexact()
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.662&r2=1.2027.2.547.2.663&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.662 php-src/NEWS:1.2027.2.547.2.663
--- php-src/NEWS:1.2027.2.547.2.662     Tue Apr 24 13:54:59 2007
+++ php-src/NEWS        Thu Apr 26 13:44:01 2007
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? Apr 2007, PHP 5.2.2RC2
+- Added GMP_VERSION constant. (Tony)
 - Fixed commandline handling fro CLI and CGI. (Marcus, Johannes)
 - Upgraded SQLite 3 to version 3.3.16 (Ilia)
 - Updated timezone database to version 2007.5. (Derick)
http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/gmp.c?r1=1.49.2.2.2.10&r2=1.49.2.2.2.11&diff_format=u
Index: php-src/ext/gmp/gmp.c
diff -u php-src/ext/gmp/gmp.c:1.49.2.2.2.10 php-src/ext/gmp/gmp.c:1.49.2.2.2.11
--- php-src/ext/gmp/gmp.c:1.49.2.2.2.10 Wed Apr 18 20:53:28 2007
+++ php-src/ext/gmp/gmp.c       Thu Apr 26 13:44:02 2007
@@ -389,6 +389,7 @@
        REGISTER_LONG_CONSTANT("GMP_ROUND_ZERO", GMP_ROUND_ZERO, CONST_CS | 
CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("GMP_ROUND_PLUSINF", GMP_ROUND_PLUSINF, CONST_CS 
| CONST_PERSISTENT);
        REGISTER_LONG_CONSTANT("GMP_ROUND_MINUSINF", GMP_ROUND_MINUSINF, 
CONST_CS | CONST_PERSISTENT);
+       REGISTER_STRING_CONSTANT("GMP_VERSION", (char *)gmp_version, CONST_CS | 
CONST_PERSISTENT);
 
        mp_set_memory_functions(gmp_emalloc, gmp_erealloc, gmp_efree);
 
@@ -415,6 +416,7 @@
 {
        php_info_print_table_start();
        php_info_print_table_row(2, "gmp support", "enabled");
+       php_info_print_table_row(2, "GMP version", gmp_version);
        php_info_print_table_end();
 }
 /* }}} */
@@ -996,7 +998,13 @@
    Divide a by b using exact division algorithm */
 ZEND_FUNCTION(gmp_divexact)
 {
-       gmp_binary_op(mpz_divexact);
+       zval **a_arg, **b_arg;
+
+       if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &a_arg, &b_arg) 
== FAILURE){
+               WRONG_PARAM_COUNT;
+       }
+       
+       gmp_zval_binary_ui_op_ex(return_value, a_arg, b_arg, mpz_divexact, 
NULL, 0, 1 TSRMLS_CC);
 }
 /* }}} */
 

http://cvs.php.net/viewvc.cgi/php-src/ext/gmp/tests/011.phpt?view=markup&rev=1.1
Index: php-src/ext/gmp/tests/011.phpt
+++ php-src/ext/gmp/tests/011.phpt
--TEST--
gmp_divexact() tests (OK to fail with GMP =< 4.2.1)
--FILE--
<?php

$r = gmp_divexact("233", "23345555555555555555555555");
var_dump(gmp_strval($r));

$r = gmp_divexact("233", "0");
var_dump(gmp_strval($r));

$r = gmp_divexact("100", "10");
var_dump(gmp_strval($r));

$r = gmp_divexact("1024", "2");
var_dump(gmp_strval($r));

$n = gmp_init("10000000000000000000");
$r = gmp_divexact($n, "2");
var_dump(gmp_strval($r));

$r = gmp_divexact($n, "50");
var_dump(gmp_strval($r));

$n1 = gmp_init("-100000000000000000000000000");
$r = gmp_divexact($n1, $n);
var_dump(gmp_strval($r));

echo "Done\n";
?>
--EXPECTF--     
string(1) "0"

Warning: gmp_divexact(): Zero operand not allowed in %s on line %d
string(1) "0"
string(2) "10"
string(3) "512"
string(19) "5000000000000000000"
string(18) "200000000000000000"
string(9) "-10000000"
Done
--UEXPECTF--
unicode(1) "0"

Warning: gmp_divexact(): Zero operand not allowed in %s on line %d
unicode(1) "0"
unicode(2) "10"
unicode(3) "512"
unicode(19) "5000000000000000000"
unicode(18) "200000000000000000"
unicode(9) "-10000000"
Done

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

Reply via email to