diff options
author | unknown <msvensson@neptunus.(none)> | 2006-11-15 10:31:23 +0100 |
---|---|---|
committer | unknown <msvensson@neptunus.(none)> | 2006-11-15 10:31:23 +0100 |
commit | 4e0cace23d0f0dd61c288dbeb6447d80b025a924 (patch) | |
tree | 3cf80a037e826309a697cf8b347a929f0d8290bf /strings | |
parent | 37b4ad8cca9c095507affbf024f2dd254371fcf1 (diff) | |
parent | 8b8647ff42757f0908340b054ec3d74c56ebfcb0 (diff) | |
download | mariadb-git-4e0cace23d0f0dd61c288dbeb6447d80b025a924.tar.gz |
Merge neptunus.(none):/home/msvensson/mysql/mysql-5.0-maint
into neptunus.(none):/home/msvensson/mysql/mysql-5.1-new-maint
mysql-test/extra/rpl_tests/rpl_deadlock.test:
Auto merged
mysql-test/extra/rpl_tests/rpl_max_relay_size.test:
Auto merged
mysql-test/r/key_cache.result:
Auto merged
mysql-test/r/rpl_deadlock_innodb.result:
Auto merged
mysql-test/r/rpl_sp.result:
Auto merged
mysql-test/r/rpl_stm_max_relay_size.result:
Auto merged
mysql-test/r/rpl_timezone.result:
Auto merged
mysql-test/r/type_float.result:
Auto merged
mysql-test/r/view_grant.result:
Auto merged
mysql-test/t/init_connect.test:
Auto merged
mysql-test/t/mysqldump.test:
Auto merged
mysql-test/t/view_grant.test:
Auto merged
mysql-test/r/mysqldump.result:
Manual merge
mysql-test/r/rpl_drop_db.result:
Manual merge
mysql-test/r/rpl_variables.result:
Manual merge
mysql-test/t/rpl_drop_db.test:
Manual merge
mysql-test/t/rpl_sp.test:
Manual merge
mysql-test/t/rpl_timezone.test:
Manual merge
mysql-test/t/rpl_variables.test:
Manual merge
Diffstat (limited to 'strings')
-rw-r--r-- | strings/strtod.c | 20 |
1 files changed, 4 insertions, 16 deletions
diff --git a/strings/strtod.c b/strings/strtod.c index ddb570718a0..932a34f921d 100644 --- a/strings/strtod.c +++ b/strings/strtod.c @@ -31,7 +31,6 @@ #define MAX_DBL_EXP 308 #define MAX_RESULT_FOR_MAX_EXP 1.7976931348623157 -#define MIN_RESULT_FOR_MIN_EXP 2.225073858507202 static double scaler10[] = { 1.0, 1e10, 1e20, 1e30, 1e40, 1e50, 1e60, 1e70, 1e80, 1e90 }; @@ -161,26 +160,15 @@ double my_strtod(const char *str, char **end_ptr, int *error) order= exp + (neg_exp ? -1 : 1) * (ndigits - 1); if (order < 0) order= -order; - if (order >= MAX_DBL_EXP && result) + if (order >= MAX_DBL_EXP && !neg_exp && result) { double c; /* Compute modulus of C (see comment above) */ c= result / scaler * 10.0; - if (neg_exp) + if (order > MAX_DBL_EXP || c > MAX_RESULT_FOR_MAX_EXP) { - if (order > MAX_DBL_EXP || c < MIN_RESULT_FOR_MIN_EXP) - { - result= 0.0; - goto done; - } - } - else - { - if (order > MAX_DBL_EXP || c > MAX_RESULT_FOR_MAX_EXP) - { - overflow= 1; - goto done; - } + overflow= 1; + goto done; } } |