aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2003-08-08 19:19:32 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2003-08-08 19:19:32 +0000
commit635d00ecea111cf316fcd430159012f39402403a (patch)
treecc4a3fac345d93088ff5eaad550f88a3e51d4169
parent332c694085611df78ddc58dfcd46f43e6bb088aa (diff)
downloadpostgresql-635d00ecea111cf316fcd430159012f39402403a.tar.gz
postgresql-635d00ecea111cf316fcd430159012f39402403a.zip
Avoid malloc(0). Although standard mallocs seem not to object,
some debugging malloc packages do.
-rw-r--r--src/pl/plpgsql/src/pl_comp.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c
index 2cc43f86246..e4d7b3c062c 100644
--- a/src/pl/plpgsql/src/pl_comp.c
+++ b/src/pl/plpgsql/src/pl_comp.c
@@ -3,7 +3,7 @@
* procedural language
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.65 2003/08/04 00:43:33 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.66 2003/08/08 19:19:32 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@@ -1663,20 +1663,25 @@ plpgsql_add_initdatums(int **varnos)
if (varnos != NULL)
{
- *varnos = (int *) malloc(sizeof(int) * n);
-
- n = 0;
- for (i = datums_last; i < plpgsql_nDatums; i++)
+ if (n > 0)
{
- switch (plpgsql_Datums[i]->dtype)
+ *varnos = (int *) malloc(sizeof(int) * n);
+
+ n = 0;
+ for (i = datums_last; i < plpgsql_nDatums; i++)
{
- case PLPGSQL_DTYPE_VAR:
- (*varnos)[n++] = plpgsql_Datums[i]->dno;
+ switch (plpgsql_Datums[i]->dtype)
+ {
+ case PLPGSQL_DTYPE_VAR:
+ (*varnos)[n++] = plpgsql_Datums[i]->dno;
- default:
- break;
+ default:
+ break;
+ }
}
}
+ else
+ *varnos = NULL;
}
datums_last = plpgsql_nDatums;