Make sure the TCL bindings always use Tcl_GetWideIntFromObj() even if the

reported type is "int" because on x86-64 and "int" type is 64-bits.
Ticket #2465. (CVS 4135)

FossilOrigin-Name: 5c93324b937b4d8394b0eb7d7fe74f7965623cbe
This commit is contained in:
drh 2007-06-26 22:55:37 +00:00
parent 99bcd30bfb
commit 985e0c63fc
3 changed files with 14 additions and 14 deletions

View File

@ -1,5 +1,5 @@
C Fix\sa\stest\scase\sso\sthat\sit\s(hopefully)\sworks\son\sx86-64.\s\sTicket\s#2465.\s(CVS\s4134)
D 2007-06-26T22:42:56
C Make\ssure\sthe\sTCL\sbindings\salways\suse\sTcl_GetWideIntFromObj()\seven\sif\sthe\nreported\stype\sis\s"int"\sbecause\son\sx86-64\sand\s"int"\stype\sis\s64-bits.\nTicket\s#2465.\s(CVS\s4135)
D 2007-06-26T22:55:38
F Makefile.in 7f7485a4cc039476a42e534b3f26ec90e2f9753e
F Makefile.linux-gcc 65241babba6faf1152bf86574477baab19190499
F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028
@ -112,7 +112,7 @@ F src/sqlite3ext.h 95575e0d175a0271fe2c3232c0d11e8720ed6887
F src/sqliteInt.h 81183ae71162818bf60478e738ff68604128bb06
F src/sqliteLimit.h f14609c27636ebc217c9603ade26dbdd7d0f6afa
F src/table.c a8de75bcedf84d4060d804264b067ab3b1a3561d
F src/tclsqlite.c 4bffe56752d2c24ade23340e46a91fd92c316e08
F src/tclsqlite.c 0d3370e01cd3b313ed29ed6b0ba00423b4329de0
F src/test1.c 0024d7069ecabe0ccc4e2f491e4a43ed5d3f4196
F src/test2.c 24458b17ab2f3c90cbc1c8446bd7ffe69be62f88
F src/test3.c a280931fb40222b7c90da45eea926459beee8904
@ -516,7 +516,7 @@ F www/tclsqlite.tcl 8be95ee6dba05eabcd27a9d91331c803f2ce2130
F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0
F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b
F www/whentouse.tcl fc46eae081251c3c181bd79c5faef8195d7991a5
P 338c18791006bac3709410087316700aad3b332f
R 76fa6fff3d8e3f760dede2f083ada376
P 3daf7cae18ae2ee6404f770e69e4cd0c715615e5
R 6bd5371797b28b1ad783bfd355bc5a05
U drh
Z ebf4030b9dc2f802dc6698d6e014be81
Z 0e3284889f389cc363d1804b624bb69e

View File

@ -1 +1 @@
3daf7cae18ae2ee6404f770e69e4cd0c715615e5
5c93324b937b4d8394b0eb7d7fe74f7965623cbe

View File

@ -12,7 +12,7 @@
** A TCL Interface to SQLite. Append this file to sqlite3.c and
** compile the whole thing to build a TCL-enabled version of SQLite.
**
** $Id: tclsqlite.c,v 1.192 2007/06/19 23:01:42 drh Exp $
** $Id: tclsqlite.c,v 1.193 2007/06/26 22:55:38 drh Exp $
*/
#include "tcl.h"
#include <errno.h>
@ -721,15 +721,15 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){
** has no string representation. */
data = Tcl_GetByteArrayFromObj(pVar, &n);
sqlite3_result_blob(context, data, n, SQLITE_TRANSIENT);
}else if( (c=='b' && strcmp(zType,"boolean")==0) ||
(c=='i' && strcmp(zType,"int")==0) ){
}else if( c=='b' && strcmp(zType,"boolean")==0 ){
Tcl_GetIntFromObj(0, pVar, &n);
sqlite3_result_int(context, n);
}else if( c=='d' && strcmp(zType,"double")==0 ){
double r;
Tcl_GetDoubleFromObj(0, pVar, &r);
sqlite3_result_double(context, r);
}else if( c=='w' && strcmp(zType,"wideInt")==0 ){
}else if( (c=='w' && strcmp(zType,"wideInt")==0) ||
(c=='i' && strcmp(zType,"int")==0) ){
Tcl_WideInt v;
Tcl_GetWideIntFromObj(0, pVar, &v);
sqlite3_result_int64(context, v);
@ -1602,15 +1602,15 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){
sqlite3_bind_blob(pStmt, i, data, n, SQLITE_STATIC);
Tcl_IncrRefCount(pVar);
apParm[nParm++] = pVar;
}else if( (c=='b' && strcmp(zType,"boolean")==0) ||
(c=='i' && strcmp(zType,"int")==0) ){
}else if( c=='b' && strcmp(zType,"boolean")==0 ){
Tcl_GetIntFromObj(interp, pVar, &n);
sqlite3_bind_int(pStmt, i, n);
}else if( c=='d' && strcmp(zType,"double")==0 ){
double r;
Tcl_GetDoubleFromObj(interp, pVar, &r);
sqlite3_bind_double(pStmt, i, r);
}else if( c=='w' && strcmp(zType,"wideInt")==0 ){
}else if( (c=='w' && strcmp(zType,"wideInt")==0) ||
(c=='i' && strcmp(zType,"int")==0) ){
Tcl_WideInt v;
Tcl_GetWideIntFromObj(interp, pVar, &v);
sqlite3_bind_int64(pStmt, i, v);