Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit acc9c38

Browse files
committed
Fix another memory leak in pg_select --- pointed out by teo@flex.ro
1 parent aa3a1f4 commit acc9c38

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

src/interfaces/libpgtcl/pgtclCmds.c

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.37 1998/10/02 01:37:17 tgl Exp $
10+
* $Header: /cvsroot/pgsql/src/interfaces/libpgtcl/Attic/pgtclCmds.c,v 1.38 1998/10/14 15:17:51 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -1230,7 +1230,8 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
12301230
Pg_ConnectionId *connid;
12311231
PGconn *conn;
12321232
PGresult *result;
1233-
int r;
1233+
int r,
1234+
retval;
12341235
size_t tupno,
12351236
column,
12361237
ncols;
@@ -1293,6 +1294,8 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
12931294
sprintf(buffer, "%d", ncols);
12941295
Tcl_SetVar2(interp, argv[3], ".numcols", buffer, 0);
12951296

1297+
retval = TCL_OK;
1298+
12961299
for (tupno = 0; tupno < PQntuples(result); tupno++)
12971300
{
12981301
sprintf(buffer, "%d", tupno);
@@ -1306,10 +1309,7 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
13061309
if ((r = Tcl_Eval(interp, argv[4])) != TCL_OK && r != TCL_CONTINUE)
13071310
{
13081311
if (r == TCL_BREAK)
1309-
{
1310-
PQclear(result);
1311-
return TCL_OK;
1312-
}
1312+
break; /* exit loop, but return TCL_OK */
13131313

13141314
if (r == TCL_ERROR)
13151315
{
@@ -1320,15 +1320,15 @@ Pg_select(ClientData cData, Tcl_Interp * interp, int argc, char **argv)
13201320
Tcl_AddErrorInfo(interp, msg);
13211321
}
13221322

1323-
PQclear(result);
1324-
return r;
1323+
retval = r;
1324+
break;
13251325
}
13261326
}
13271327

13281328
ckfree((void *) info);
13291329
Tcl_UnsetVar(interp, argv[3], 0);
13301330
PQclear(result);
1331-
return TCL_OK;
1331+
return retval;
13321332
}
13331333

13341334
/*

0 commit comments

Comments
 (0)