aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/mb/mbutils.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/mb/mbutils.c')
-rw-r--r--src/backend/utils/mb/mbutils.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c
index 4630e895867..bec54bb5cbc 100644
--- a/src/backend/utils/mb/mbutils.c
+++ b/src/backend/utils/mb/mbutils.c
@@ -203,8 +203,6 @@ SetClientEncoding(int encoding)
int current_server_encoding;
bool found;
ListCell *lc;
- ListCell *prev;
- ListCell *next;
if (!PG_VALID_FE_ENCODING(encoding))
return -1;
@@ -238,13 +236,10 @@ SetClientEncoding(int encoding)
* leak memory.
*/
found = false;
- prev = NULL;
- for (lc = list_head(ConvProcList); lc; lc = next)
+ foreach(lc, ConvProcList)
{
ConvProcInfo *convinfo = (ConvProcInfo *) lfirst(lc);
- next = lnext(lc);
-
if (convinfo->s_encoding == current_server_encoding &&
convinfo->c_encoding == encoding)
{
@@ -259,13 +254,10 @@ SetClientEncoding(int encoding)
else
{
/* Duplicate entry, release it */
- ConvProcList = list_delete_cell(ConvProcList, lc, prev);
+ ConvProcList = foreach_delete_current(ConvProcList, lc);
pfree(convinfo);
- continue; /* prev mustn't advance */
}
}
-
- prev = lc;
}
if (found)