sniper Tue Dec 9 18:59:34 2003 EDT Modified files: /ZendEngine2 zend_operators.c zend_operators.h /php-src/ext/bcmath bcmath.c config.m4 php_bcmath.h /php-src/ext/bcmath/libbcmath/src bcmath.h init.c /php-src/main config.nw.h config.w32.h internal_functions_nw.c internal_functions_win32.c Log: - Brought ext/bcmath to the new millennium # consistency..
Index: ZendEngine2/zend_operators.c diff -u ZendEngine2/zend_operators.c:1.170 ZendEngine2/zend_operators.c:1.171 --- ZendEngine2/zend_operators.c:1.170 Tue Dec 2 16:09:24 2003 +++ ZendEngine2/zend_operators.c Tue Dec 9 18:59:31 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.c,v 1.170 2003/12/02 21:09:24 andi Exp $ */ +/* $Id: zend_operators.c,v 1.171 2003/12/09 23:59:31 sniper Exp $ */ #include <ctype.h> @@ -29,7 +29,7 @@ #include "zend_fast_cache.h" #include "zend_API.h" -#if 0&&WITH_BCMATH +#if 0&&HAVE_BCMATH #include "ext/bcmath/number.h" #endif @@ -117,7 +117,7 @@ case IS_DOUBLE: case IS_LONG: break; -#if 0 && WITH_BCMATH +#if 0 && HAVE_BCMATH case FLAG_IS_BC: op->type = IS_DOUBLE; /* may have lost significant digits */ break; @@ -1752,7 +1752,7 @@ if ((ret1=is_numeric_string(s1->value.str.val, s1->value.str.len, &lval1, &dval1, 0)) && (ret2=is_numeric_string(s2->value.str.val, s2->value.str.len, &lval2, &dval2, 0))) { -#if 0&&WITH_BCMATH +#if 0&&HAVE_BCMATH if ((ret1==FLAG_IS_BC) || (ret2==FLAG_IS_BC)) { bc_num first, second; Index: ZendEngine2/zend_operators.h diff -u ZendEngine2/zend_operators.h:1.82 ZendEngine2/zend_operators.h:1.83 --- ZendEngine2/zend_operators.h:1.82 Mon Nov 24 15:57:54 2003 +++ ZendEngine2/zend_operators.h Tue Dec 9 18:59:31 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.h,v 1.82 2003/11/24 20:57:54 helly Exp $ */ +/* $Id: zend_operators.h,v 1.83 2003/12/09 23:59:31 sniper Exp $ */ #ifndef ZEND_OPERATORS_H #define ZEND_OPERATORS_H @@ -30,7 +30,7 @@ #endif -#if 0&&WITH_BCMATH +#if 0&&HAVE_BCMATH #include "ext/bcmath/libbcmath/src/bcmath.h" #endif @@ -106,7 +106,7 @@ if (dval) { *dval = local_dval; } -#if 0&&WITH_BCMATH +#if 0&&HAVE_BCMATH if (length>16) { register char *ptr=str, *end=str+length; Index: php-src/ext/bcmath/bcmath.c diff -u php-src/ext/bcmath/bcmath.c:1.56 php-src/ext/bcmath/bcmath.c:1.57 --- php-src/ext/bcmath/bcmath.c:1.56 Thu Jun 12 08:21:33 2003 +++ php-src/ext/bcmath/bcmath.c Tue Dec 9 18:59:32 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: bcmath.c,v 1.56 2003/06/12 12:21:33 andrey Exp $ */ +/* $Id: bcmath.c,v 1.57 2003/12/09 23:59:32 sniper Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -24,8 +24,9 @@ #include "php.h" -#if WITH_BCMATH +#if HAVE_BCMATH +#include "php_ini.h" #include "ext/standard/info.h" #include "php_bcmath.h" #include "libbcmath/src/bcmath.h" @@ -50,14 +51,10 @@ STANDARD_MODULE_HEADER, "bcmath", bcmath_functions, -#if ZTS - PHP_MODULE_STARTUP_N(bcmath), -#else + PHP_MINIT(bcmath), + PHP_MSHUTDOWN(bcmath), NULL, -#endif NULL, - PHP_RINIT(bcmath), - PHP_RSHUTDOWN(bcmath), PHP_MINFO(bcmath), NO_VERSION_YET, STANDARD_MODULE_PROPERTIES @@ -67,53 +64,55 @@ ZEND_GET_MODULE(bcmath) #endif -#ifndef THREAD_SAFE -static long bc_precision; -#endif +/* {{{ PHP_INI */ +PHP_INI_BEGIN() + STD_PHP_INI_ENTRY("bcmath.scale", "0", PHP_INI_ALL, OnUpdateLong, bc_precision, zend_bcmath_globals, bcmath_globals) +PHP_INI_END() +/* }}} */ -#if ZTS -PHP_MODULE_STARTUP_D(bcmath) +/* {{{ php_bcmath_init_globals + */ +static void php_bcmath_init_globals(zend_bcmath_globals *bcmath_globals) { - zend_bcmath_globals *bcmath_globals; - - ts_allocate_id(&bcmath_globals_id, sizeof(zend_bcmath_globals), NULL, NULL); - bcmath_globals = ts_resource(bcmath_globals_id); - return SUCCESS; + bcmath_globals->bc_precision = 0; } -#endif +/* }}} */ -PHP_RSHUTDOWN_FUNCTION(bcmath) +/* {{{ PHP_MINIT_FUNCTION + */ +PHP_MINIT_FUNCTION(bcmath) { - bc_free_num(&BCG(_zero_)); - bc_free_num(&BCG(_one_)); - bc_free_num(&BCG(_two_)); + ZEND_INIT_MODULE_GLOBALS(bcmath, php_bcmath_init_globals, NULL); + + REGISTER_INI_ENTRIES(); + + bc_init_numbers(TSRMLS_C); return SUCCESS; } +/* }}} */ - -PHP_RINIT_FUNCTION(bcmath) +/* {{{ PHP_MSHUTDOWN_FUNCTION + */ +PHP_MSHUTDOWN_FUNCTION(bcmath) { - if (cfg_get_long("bcmath.scale", &bc_precision) == FAILURE) { - bc_precision = 0; - } + _bc_free_num_ex(&BCG(_zero_), 1); + _bc_free_num_ex(&BCG(_one_), 1); + _bc_free_num_ex(&BCG(_two_), 1); - if (bc_precision < 0) { - bc_precision = 0; - } - - bc_init_numbers(TSRMLS_C); - return SUCCESS; } - - +/* }}} */ + +/* {{{ PHP_MINFO_FUNCTION + */ PHP_MINFO_FUNCTION(bcmath) { php_info_print_table_start(); php_info_print_table_row(2, "BCMath support", "enabled"); php_info_print_table_end(); } +/* }}} */ /* {{{ php_str2num Convert to bc_num detecting scale */ @@ -136,7 +135,7 @@ { zval **left, **right, **scale_param; bc_num first, second, result; - int scale = bc_precision; + int scale = BCG(bc_precision); switch (ZEND_NUM_ARGS()) { case 2: @@ -182,7 +181,7 @@ { zval **left, **right, **scale_param; bc_num first, second, result; - int scale = bc_precision; + int scale = BCG(bc_precision); switch (ZEND_NUM_ARGS()) { case 2: @@ -228,7 +227,7 @@ { zval **left, **right, **scale_param; bc_num first, second, result; - int scale = bc_precision; + int scale = BCG(bc_precision); switch (ZEND_NUM_ARGS()) { case 2: @@ -274,7 +273,7 @@ { zval **left, **right, **scale_param; bc_num first, second, result; - int scale = bc_precision; + int scale = BCG(bc_precision); switch (ZEND_NUM_ARGS()) { case 2: @@ -368,7 +367,7 @@ char *left, *right, *modulous; int left_len, right_len, modulous_len; bc_num first, second, mod, result; - int scale = bc_precision; + int scale = BCG(bc_precision); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sss|l", &left, &left_len, &right, &right_len, &modulous, &modulous_len, &scale) == FAILURE) { WRONG_PARAM_COUNT; @@ -402,7 +401,7 @@ { zval **left, **right, **scale_param; bc_num first, second, result; - int scale = bc_precision; + int scale = BCG(bc_precision); switch (ZEND_NUM_ARGS()) { case 2: @@ -448,7 +447,7 @@ { zval **left, **scale_param; bc_num result; - int scale = bc_precision; + int scale = BCG(bc_precision); switch (ZEND_NUM_ARGS()) { case 1: @@ -491,7 +490,7 @@ { zval **left, **right, **scale_param; bc_num first, second; - int scale = bc_precision; + int scale = BCG(bc_precision); switch (ZEND_NUM_ARGS()) { case 2: @@ -538,7 +537,7 @@ } convert_to_long_ex(new_scale); - bc_precision = (Z_LVAL_PP(new_scale) < 0) ? 0 : Z_LVAL_PP(new_scale); + BCG(bc_precision) = (Z_LVAL_PP(new_scale) < 0) ? 0 : Z_LVAL_PP(new_scale); RETURN_TRUE; } Index: php-src/ext/bcmath/config.m4 diff -u php-src/ext/bcmath/config.m4:1.15 php-src/ext/bcmath/config.m4:1.16 --- php-src/ext/bcmath/config.m4:1.15 Wed Nov 20 16:16:39 2002 +++ php-src/ext/bcmath/config.m4 Tue Dec 9 18:59:32 2003 @@ -1,12 +1,11 @@ dnl -dnl $Id: config.m4,v 1.15 2002/11/20 21:16:39 andi Exp $ +dnl $Id: config.m4,v 1.16 2003/12/09 23:59:32 sniper Exp $ dnl PHP_ARG_ENABLE(bcmath, whether to enable bc style precision math functions, [ --enable-bcmath Enable bc style precision math functions.]) if test "$PHP_BCMATH" != "no"; then - AC_DEFINE(WITH_BCMATH, 1, [Whether you have bcmath]) PHP_NEW_EXTENSION(bcmath, bcmath.c \ libbcmath/src/add.c libbcmath/src/div.c libbcmath/src/init.c libbcmath/src/neg.c libbcmath/src/outofmem.c libbcmath/src/raisemod.c libbcmath/src/rt.c libbcmath/src/sub.c \ libbcmath/src/compare.c libbcmath/src/divmod.c libbcmath/src/int2num.c libbcmath/src/num2long.c libbcmath/src/output.c libbcmath/src/recmul.c \ @@ -14,4 +13,5 @@ libbcmath/src/rmzero.c libbcmath/src/str2num.c, $ext_shared,,[EMAIL PROTECTED]@/libbcmath/src) PHP_ADD_BUILD_DIR($ext_builddir/libbcmath/src) + AC_DEFINE(HAVE_BCMATH, 1, [Whether you have bcmath]) fi Index: php-src/ext/bcmath/php_bcmath.h diff -u php-src/ext/bcmath/php_bcmath.h:1.16 php-src/ext/bcmath/php_bcmath.h:1.17 --- php-src/ext/bcmath/php_bcmath.h:1.16 Tue Jun 10 16:03:25 2003 +++ php-src/ext/bcmath/php_bcmath.h Tue Dec 9 18:59:32 2003 @@ -16,39 +16,20 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_bcmath.h,v 1.16 2003/06/10 20:03:25 imajes Exp $ */ +/* $Id: php_bcmath.h,v 1.17 2003/12/09 23:59:32 sniper Exp $ */ #ifndef PHP_BCMATH_H #define PHP_BCMATH_H -#if WITH_BCMATH +#if HAVE_BCMATH #include "libbcmath/src/bcmath.h" -ZEND_BEGIN_MODULE_GLOBALS(bcmath) - bc_num _zero_; - bc_num _one_; - bc_num _two_; -ZEND_END_MODULE_GLOBALS(bcmath) - -#if ZTS -# define BCG(v) TSRMG(bcmath_globals_id, zend_bcmath_globals *, v) -extern int bcmath_globals_id; -#else -# define BCG(v) (bcmath_globals.v) -extern zend_bcmath_globals bcmath_globals; -#endif - -#define BC - extern zend_module_entry bcmath_module_entry; #define phpext_bcmath_ptr &bcmath_module_entry -#if ZTS PHP_MINIT_FUNCTION(bcmath); -#endif -PHP_RINIT_FUNCTION(bcmath); -PHP_RSHUTDOWN_FUNCTION(bcmath); +PHP_MSHUTDOWN_FUNCTION(bcmath); PHP_MINFO_FUNCTION(bcmath); PHP_FUNCTION(bcadd); @@ -62,6 +43,21 @@ PHP_FUNCTION(bcscale); PHP_FUNCTION(bcpowmod); +ZEND_BEGIN_MODULE_GLOBALS(bcmath) + bc_num _zero_; + bc_num _one_; + bc_num _two_; + long bc_precision; +ZEND_END_MODULE_GLOBALS(bcmath) + +#if ZTS +#define BCG(v) TSRMG(bcmath_globals_id, zend_bcmath_globals *, v) +#else +#define BCG(v) (bcmath_globals.v) +#endif + +ZEND_EXTERN_MODULE_GLOBALS(bcmath) + #else #define phpext_bcmath_ptr NULL Index: php-src/ext/bcmath/libbcmath/src/bcmath.h diff -u php-src/ext/bcmath/libbcmath/src/bcmath.h:1.8 php-src/ext/bcmath/libbcmath/src/bcmath.h:1.9 --- php-src/ext/bcmath/libbcmath/src/bcmath.h:1.8 Mon Dec 1 09:01:38 2003 +++ php-src/ext/bcmath/libbcmath/src/bcmath.h Tue Dec 9 18:59:33 2003 @@ -101,9 +101,9 @@ _PROTOTYPE(void bc_init_numbers, (TSRMLS_D)); -_PROTOTYPE(bc_num bc_new_num, (int length, int scale)); +_PROTOTYPE(bc_num _bc_new_num_ex, (int length, int scale, int persistent)); -_PROTOTYPE(void bc_free_num, (bc_num *num)); +_PROTOTYPE(void _bc_free_num_ex, (bc_num *num, int persistent)); _PROTOTYPE(bc_num bc_copy_num, (bc_num num)); @@ -155,4 +155,8 @@ _PROTOTYPE(void bc_rt_warn, (char *mesg ,...)); _PROTOTYPE(void bc_rt_error, (char *mesg ,...)); _PROTOTYPE(void bc_out_of_memory, (void)); + +#define bc_new_num(length, scale) _bc_new_num_ex((length), (scale), 0) +#define bc_free_num(num) _bc_free_num_ex((num), 0) + #endif Index: php-src/ext/bcmath/libbcmath/src/init.c diff -u php-src/ext/bcmath/libbcmath/src/init.c:1.5 php-src/ext/bcmath/libbcmath/src/init.c:1.6 --- php-src/ext/bcmath/libbcmath/src/init.c:1.5 Fri Nov 29 12:59:30 2002 +++ php-src/ext/bcmath/libbcmath/src/init.c Tue Dec 9 18:59:33 2003 @@ -45,19 +45,19 @@ /* new_num allocates a number and sets fields to known values. */ bc_num -bc_new_num (length, scale) - int length, scale; +_bc_new_num_ex (length, scale, persistent) + int length, scale, persistent; { bc_num temp; - /* PHP Change: malloc() -> emalloc(), removed free_list code */ - temp = (bc_num) emalloc (sizeof(bc_struct)+length+scale); + /* PHP Change: malloc() -> pemalloc(), removed free_list code */ + temp = (bc_num) pemalloc (sizeof(bc_struct)+length+scale, persistent); #if 0 if (_bc_Free_list != NULL) { temp = _bc_Free_list; _bc_Free_list = temp->n_next; } else { - temp = (bc_num) emalloc (sizeof(bc_struct)); + temp = (bc_num) pemalloc (sizeof(bc_struct), persistent); if (temp == NULL) bc_out_of_memory (); } #endif @@ -65,8 +65,8 @@ temp->n_len = length; temp->n_scale = scale; temp->n_refs = 1; - /* PHP Change: malloc() -> emalloc() */ - temp->n_ptr = (char *) emalloc (length+scale); + /* PHP Change: malloc() -> pemalloc() */ + temp->n_ptr = (char *) pemalloc (length+scale, persistent); if (temp->n_ptr == NULL) bc_out_of_memory(); temp->n_value = temp->n_ptr; memset (temp->n_ptr, 0, length+scale); @@ -78,16 +78,17 @@ frees the storage if reference count is zero. */ void -bc_free_num (num) +_bc_free_num_ex (num, persistent) bc_num *num; + int persistent; { if (*num == NULL) return; (*num)->n_refs--; if ((*num)->n_refs == 0) { if ((*num)->n_ptr) - /* PHP Change: free() -> efree(), removed free_list code */ - efree ((*num)->n_ptr); - efree(*num); + /* PHP Change: free() -> pefree(), removed free_list code */ + pefree ((*num)->n_ptr, persistent); + pefree(*num, persistent); #if 0 (*num)->n_next = _bc_Free_list; _bc_Free_list = *num; @@ -102,10 +103,10 @@ void bc_init_numbers (TSRMLS_D) { - BCG(_zero_) = bc_new_num (1,0); - BCG(_one_) = bc_new_num (1,0); + BCG(_zero_) = _bc_new_num_ex (1,0,1); + BCG(_one_) = _bc_new_num_ex (1,0,1); BCG(_one_)->n_value[0] = 1; - BCG(_two_) = bc_new_num (1,0); + BCG(_two_) = _bc_new_num_ex (1,0,1); BCG(_two_)->n_value[0] = 2; } Index: php-src/main/config.nw.h diff -u php-src/main/config.nw.h:1.4 php-src/main/config.nw.h:1.5 --- php-src/main/config.nw.h:1.4 Tue Jun 10 16:03:41 2003 +++ php-src/main/config.nw.h Tue Dec 9 18:59:33 2003 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: config.nw.h,v 1.4 2003/06/10 20:03:41 imajes Exp $ */ +/* $Id: config.nw.h,v 1.5 2003/12/09 23:59:33 sniper Exp $ */ /* config.nw.h. Configure file for NetWare platform */ @@ -33,7 +33,7 @@ #define HAVE_GETPROTOBYNUMBER 1 /* set to enable bcmath */ -#define WITH_BCMATH 1 +#define HAVE_BCMATH 1 /* set to enable mysql */ #define HAVE_MYSQL 1 Index: php-src/main/config.w32.h diff -u php-src/main/config.w32.h:1.82 php-src/main/config.w32.h:1.83 --- php-src/main/config.w32.h:1.82 Wed Dec 3 20:40:59 2003 +++ php-src/main/config.w32.h Tue Dec 9 18:59:33 2003 @@ -2,7 +2,7 @@ Build Configuration for Win32. This has only been tested with MS VisualC++ 6 (and later). - $Id: config.w32.h,v 1.82 2003/12/04 01:40:59 wez Exp $ + $Id: config.w32.h,v 1.83 2003/12/09 23:59:33 sniper Exp $ */ /* Default PHP / PEAR directories */ @@ -20,7 +20,7 @@ #define PHP_SYSCONFDIR "c:\\php5" /* Enable / Disable BCMATH extension (default: enabled) */ -#define WITH_BCMATH 1 +#define HAVE_BCMATH 1 /* Enable / Disable crypt() function (default: enabled) */ #define HAVE_CRYPT 1 Index: php-src/main/internal_functions_nw.c diff -u php-src/main/internal_functions_nw.c:1.4 php-src/main/internal_functions_nw.c:1.5 --- php-src/main/internal_functions_nw.c:1.4 Tue Jun 10 16:03:41 2003 +++ php-src/main/internal_functions_nw.c Tue Dec 9 18:59:33 2003 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: internal_functions_nw.c,v 1.4 2003/06/10 20:03:41 imajes Exp $ */ +/* $Id: internal_functions_nw.c,v 1.5 2003/12/09 23:59:33 sniper Exp $ */ /* {{{ includes */ @@ -65,7 +65,7 @@ */ zend_module_entry *php_builtin_extensions[] = { phpext_standard_ptr, -#if WITH_BCMATH +#if HAVE_BCMATH phpext_bcmath_ptr, #endif phpext_calendar_ptr, Index: php-src/main/internal_functions_win32.c diff -u php-src/main/internal_functions_win32.c:1.82 php-src/main/internal_functions_win32.c:1.83 --- php-src/main/internal_functions_win32.c:1.82 Sun Oct 19 17:48:45 2003 +++ php-src/main/internal_functions_win32.c Tue Dec 9 18:59:33 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: internal_functions_win32.c,v 1.82 2003/10/19 21:48:45 shane Exp $ */ +/* $Id: internal_functions_win32.c,v 1.83 2003/12/09 23:59:33 sniper Exp $ */ /* {{{ includes */ @@ -49,7 +49,7 @@ #include "ext/standard/php_lcg.h" #include "ext/standard/php_array.h" #include "ext/standard/php_assert.h" -#if WITH_BCMATH +#if HAVE_BCMATH #include "ext/bcmath/php_bcmath.h" #endif #if HAVE_CALENDAR @@ -105,7 +105,7 @@ */ zend_module_entry *php_builtin_extensions[] = { phpext_standard_ptr -#if WITH_BCMATH +#if HAVE_BCMATH ,phpext_bcmath_ptr #endif #if HAVE_CALENDAR
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php