diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2002-12-17 01:18:35 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2002-12-17 01:18:35 +0000 |
| commit | e932a724a4a372c7db21ce7bf40250576b085041 (patch) | |
| tree | 02e45ca5656b4838336b1b2b6e9e31cea2f721dc /src/backend/rewrite/rewriteHandler.c | |
| parent | 9f76d0d926ffe72e32248b7c79f585c47e643981 (diff) | |
| download | postgresql-e932a724a4a372c7db21ce7bf40250576b085041.tar.gz | |
To suppress memory leakage in long-lived Lists, lremove() should pfree
the cons cell it's deleting from the list. Do this, and fix a few callers
that were bogusly assuming it wouldn't free the cons cell.
Diffstat (limited to 'src/backend/rewrite/rewriteHandler.c')
| -rw-r--r-- | src/backend/rewrite/rewriteHandler.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/backend/rewrite/rewriteHandler.c b/src/backend/rewrite/rewriteHandler.c index d0badcc154..c19d15b4f0 100644 --- a/src/backend/rewrite/rewriteHandler.c +++ b/src/backend/rewrite/rewriteHandler.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.114 2002/12/12 15:49:40 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.115 2002/12/17 01:18:32 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -205,9 +205,11 @@ adjustJoinTreeList(Query *parsetree, bool removert, int rt_index) { RangeTblRef *rtr = lfirst(jjt); - if (IsA(rtr, RangeTblRef) &&rtr->rtindex == rt_index) + if (IsA(rtr, RangeTblRef) && + rtr->rtindex == rt_index) { newjointree = lremove(rtr, newjointree); + /* foreach is safe because we exit loop after lremove... */ break; } } |
