From: drh Date: Wed, 4 Jan 2006 18:13:26 +0000 (+0000) Subject: Bug fix in the new "exists" method of the TCL interface. (CVS 2857) X-Git-Tag: version-3.6.10~3310 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=446a9b825bb6ade42050ddf30c0ab233a19e45e2;p=thirdparty%2Fsqlite.git Bug fix in the new "exists" method of the TCL interface. (CVS 2857) FossilOrigin-Name: d0e3d466094f7b2f74ed7ebb324e5024ea8faa6f --- diff --git a/manifest b/manifest index acf25c1dff..c5f50a1b50 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Update\sdocument\sfor\sCREATE\sINDEX\sIF\sNOT\sEXISTS\sand\sDROP\sINDEX\sIF\sEXISTS\s(CVS\s2856) -D 2006-01-04T15:58:29 +C Bug\sfix\sin\sthe\snew\s"exists"\smethod\sof\sthe\sTCL\sinterface.\s(CVS\s2857) +D 2006-01-04T18:13:26 F Makefile.in e3c6b3a38d734d41574c04f2fc90d18de2b87102 F Makefile.linux-gcc aee18d8a05546dcf1888bd4547e442008a49a092 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -71,7 +71,7 @@ F src/shell.c 66b073375efbdee19045e7e0cd38b85f9aff71da F src/sqlite.h.in ba3a29daa6a16e054191ccb384a981964e882a1d F src/sqliteInt.h a9b187e8621cd3c20c7ef6c0716d77cbed716d4d F src/table.c 486dcfce532685b53b5a2b5da8bba0ded6fb2316 -F src/tclsqlite.c 124f822d6c55c5d95420672bf39fe3ba60ae1f76 +F src/tclsqlite.c 0386460a4c017d49d729d44cdcb3fb3ffb2503e0 F src/test1.c 988dbac66c3ca92d69fbe0283d77e86cd6f73ce8 F src/test2.c 36390cdfc70c08e5ee0b466d0654a117f398bbff F src/test3.c 9742aa146eb750cab81c1d5605286c3a0eb88054 @@ -335,7 +335,7 @@ F www/tclsqlite.tcl ddcf912ea48695603c8ed7efb29f0812ef8d1b49 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl a99cf5f6d8bd4d5537584a2b342f0fb9fa601d8b F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 -P 551cdd6c309e75687abaeac5381b794cd5e4c10a -R 28635e7d496f1c4b880f9ed468d83f4a +P 963ba8b8f3b7b3a8bcd36b224e283cf3b86d4b1d +R 566b5ccade5f3a282e81daec1c4a88a4 U drh -Z 26b7c1a3b995d35a5aa73e0e92185423 +Z f9835c7855643dbb934c6c0a28d2cf11 diff --git a/manifest.uuid b/manifest.uuid index 5b277491a6..eeb505b34f 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -963ba8b8f3b7b3a8bcd36b224e283cf3b86d4b1d \ No newline at end of file +d0e3d466094f7b2f74ed7ebb324e5024ea8faa6f \ No newline at end of file diff --git a/src/tclsqlite.c b/src/tclsqlite.c index 1379ae5fe5..610e9063ec 100644 --- a/src/tclsqlite.c +++ b/src/tclsqlite.c @@ -11,7 +11,7 @@ ************************************************************************* ** A TCL Interface to SQLite ** -** $Id: tclsqlite.c,v 1.143 2006/01/03 00:33:50 drh Exp $ +** $Id: tclsqlite.c,v 1.144 2006/01/04 18:13:26 drh Exp $ */ #ifndef NO_TCL /* Omit this whole file if TCL is unavailable */ @@ -1207,9 +1207,11 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){ Tcl_WrongNumArgs(interp, 2, objv, "SQL"); return TCL_ERROR; } - pRet = 0; if( choice==DB_EXISTS ){ - Tcl_SetObjResult(interp, Tcl_NewBooleanObj(0)); + pRet = Tcl_NewBooleanObj(0); + Tcl_IncrRefCount(pRet); + }else{ + pRet = 0; } } if( objc==3 ){ @@ -1423,8 +1425,9 @@ static int DbObjCmd(void *cd, Tcl_Interp *interp, int objc,Tcl_Obj *const*objv){ rc = TCL_BREAK; i = nCol; }else if( choice==DB_EXISTS ){ - assert( pRet==0 ); - Tcl_SetObjResult(interp, Tcl_NewBooleanObj(1)); + Tcl_DecrRefCount(pRet); + pRet = Tcl_NewBooleanObj(1); + Tcl_IncrRefCount(pRet); rc = TCL_BREAK; i = nCol; }else{