aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifest12
-rw-r--r--manifest.uuid2
-rw-r--r--src/func.c16
3 files changed, 13 insertions, 17 deletions
diff --git a/manifest b/manifest
index eb143f76a..4d99f3c10 100644
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Performance\soptimizations\sin\sthe\sVDBE\sand\sespecially\sto\sthe\sOP_Next\sand\nrelated\sopcodes.
-D 2013-08-20T00:42:11.120
+C Fix\scompiler\swarnings\sand\sboundary\scases\sfor\sthe\stointeger()\sand\storeal()\nfunctions.
+D 2013-08-20T02:07:50.845
F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
F Makefile.in 5e41da95d92656a5004b03d3576e8b226858a28e
F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -175,7 +175,7 @@ F src/delete.c 2317c814866d9aa71fea16b3faf4fdd4d6a49b94
F src/expr.c 42d8235af422661ab80be097bebca485b33e2e14
F src/fault.c 160a0c015b6c2629d3899ed2daf63d75754a32bb
F src/fkey.c 914a6bbd987d857c41ac9d244efa6641f36faadb
-F src/func.c 835168be942c8c18a6c6b3b78462bc378d25c7b4
+F src/func.c 03a79c7a2ae5535c36157d7f5823883c5d0179b1
F src/global.c 5caf4deab621abb45b4c607aad1bd21c20aac759
F src/hash.c ac3470bbf1ca4ae4e306a8ecb0fdf1731810ffe4
F src/hash.h 8890a25af81fb85a9ad7790d32eedab4b994da22
@@ -1106,7 +1106,7 @@ F tool/warnings-clang.sh f6aa929dc20ef1f856af04a730772f59283631d4
F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
F tool/wherecosttest.c f407dc4c79786982a475261866a161cd007947ae
F tool/win/sqlite.vsix 97894c2790eda7b5bce3cc79cb2a8ec2fde9b3ac
-P d2efea1682a7e708000c1f5d36370aaf1199b3be
-R 08cd0ad5f78761d7e8cb97606228a179
+P d78c5d89de4b840351b026c9db1952fc24e689d0
+R f40049688c2f823d8e8fd7e09d988578
U drh
-Z 1caed0652391fde507351b876419455b
+Z 180da4560f629509c84cc64c4a342242
diff --git a/manifest.uuid b/manifest.uuid
index fd7914b70..b43e0cae1 100644
--- a/manifest.uuid
+++ b/manifest.uuid
@@ -1 +1 @@
-d78c5d89de4b840351b026c9db1952fc24e689d0 \ No newline at end of file
+4438b9865826446721b7aa09295fe335bf2fafb7 \ No newline at end of file
diff --git a/src/func.c b/src/func.c
index 995f10426..81f75851f 100644
--- a/src/func.c
+++ b/src/func.c
@@ -981,7 +981,7 @@ static void tointegerFunc(
case SQLITE_FLOAT: {
double rVal = sqlite3_value_double(argv[0]);
i64 iVal = (i64)rVal;
- if( !sqlite3IsNaN(rVal) && rVal==(double)iVal ){
+ if( rVal==(double)iVal ){
sqlite3_result_int64(context, iVal);
}
break;
@@ -995,9 +995,9 @@ static void tointegerFunc(
const unsigned char *zStr = sqlite3_value_text(argv[0]);
if( zStr ){
int nStr = sqlite3_value_bytes(argv[0]);
- if( nStr ){
+ if( nStr && !sqlite3Isspace(zStr[0]) ){
i64 iVal;
- if( !sqlite3Atoi64(zStr, &iVal, nStr, SQLITE_UTF8) ){
+ if( !sqlite3Atoi64((const char*)zStr, &iVal, nStr, SQLITE_UTF8) ){
sqlite3_result_int64(context, iVal);
}
}
@@ -1028,11 +1028,7 @@ static void torealFunc(
break;
}
case SQLITE_INTEGER: {
- i64 iVal = sqlite3_value_int64(argv[0]);
- double rVal = (double)iVal;
- if( iVal==rVal ){
- sqlite3_result_double(context, rVal);
- }
+ sqlite3_result_double(context, (double)sqlite3_value_int64(argv[0]));
break;
}
case SQLITE_BLOB:
@@ -1040,9 +1036,9 @@ static void torealFunc(
const unsigned char *zStr = sqlite3_value_text(argv[0]);
if( zStr ){
int nStr = sqlite3_value_bytes(argv[0]);
- if( nStr ){
+ if( nStr && !sqlite3Isspace(zStr[0]) && !sqlite3Isspace(zStr[nStr-1]) ){
double rVal;
- if( sqlite3AtoF(zStr, &rVal, nStr, SQLITE_UTF8) ){
+ if( sqlite3AtoF((const char*)zStr, &rVal, nStr, SQLITE_UTF8) ){
sqlite3_result_double(context, rVal);
return;
}