aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1997-09-25 15:48:51 +0000
committerBruce Momjian <bruce@momjian.us>1997-09-25 15:48:51 +0000
commit0384d37083b032b2e6dd2e33177816cfd685c4ec (patch)
tree212baac3a2cd29fd76c9c2842096bb8d819eb569
parent5004b99e92cd1579993c950edd904e7b9457b349 (diff)
downloadpostgresql-0384d37083b032b2e6dd2e33177816cfd685c4ec.tar.gz
postgresql-0384d37083b032b2e6dd2e33177816cfd685c4ec.zip
Fix for libpgtcl from Constantin Teodorescu.
-rw-r--r--src/interfaces/libpgtcl/pgtclCmds.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/interfaces/libpgtcl/pgtclCmds.c b/src/interfaces/libpgtcl/pgtclCmds.c
index c26b3ebdc35..f747869ebd3 100644
--- a/src/interfaces/libpgtcl/pgtclCmds.c
+++ b/src/interfaces/libpgtcl/pgtclCmds.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.15 1997/09/08 02:40:15 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.16 1997/09/25 15:48:51 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1339,9 +1339,11 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
if ((r = Tcl_Eval(interp, argv[4])) != TCL_OK && r != TCL_CONTINUE)
{
- if (r == TCL_BREAK)
+ if (r == TCL_BREAK) {
+ /* I suppose that memory used by info and result must be released */
+ free(info); PQclear(result);Tcl_UnsetVar(interp, argv[3], 0);
return TCL_OK;
-
+ }
if (r == TCL_ERROR)
{
char msg[60];
@@ -1350,12 +1352,15 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
interp->errorLine);
Tcl_AddErrorInfo(interp, msg);
}
-
+ /* also, releasing memory used by info and result */
+ free(info); PQclear(result);Tcl_UnsetVar(interp, argv[3], 0);
return r;
}
}
free(info);
+ /* Release memory used by result */
+ PQclear(result);
Tcl_UnsetVar(interp, argv[3], 0);
Tcl_AppendResult(interp, "", 0);
return TCL_OK;