1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-08-08 14:02:16 +03:00

Fix memory leaks in Tcl user function interface. (CVS 2464)

FossilOrigin-Name: f5d9a8061a6d650f207669b121243abb8dd28be2
This commit is contained in:
danielk1977
2005-05-20 09:40:55 +00:00
parent 1f55c05660
commit 562e8d3c3b
3 changed files with 10 additions and 10 deletions

View File

@@ -11,7 +11,7 @@
*************************************************************************
** A TCL Interface to SQLite
**
** $Id: tclsqlite.c,v 1.124 2005/05/05 10:30:30 drh Exp $
** $Id: tclsqlite.c,v 1.125 2005/05/20 09:40:56 danielk1977 Exp $
*/
#ifndef NO_TCL /* Omit this whole file if TCL is unavailable */
@@ -273,6 +273,8 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){
}
rc = Tcl_EvalEx(p->interp, Tcl_DStringValue(&cmd), Tcl_DStringLength(&cmd),
TCL_EVAL_DIRECT);
Tcl_DStringFree(&cmd);
if( rc && rc!=TCL_RETURN ){
sqlite3_result_error(context, Tcl_GetStringResult(p->interp), -1);
}else{
@@ -284,7 +286,6 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){
if( c=='b' && strcmp(zType,"bytearray")==0 ){
data = Tcl_GetByteArrayFromObj(pVar, &n);
sqlite3_result_blob(context, data, n, SQLITE_TRANSIENT);
Tcl_IncrRefCount(pVar);
}else if( (c=='b' && strcmp(zType,"boolean")==0) ||
(c=='i' && strcmp(zType,"int")==0) ){
Tcl_GetIntFromObj(0, pVar, &n);
@@ -296,7 +297,6 @@ static void tclSqlFunc(sqlite3_context *context, int argc, sqlite3_value**argv){
}else{
data = Tcl_GetStringFromObj(pVar, &n);
sqlite3_result_text(context, data, n, SQLITE_TRANSIENT);
Tcl_IncrRefCount(pVar);
}
}
}