Avoid malloc(0). Although standard mallocs seem not to object,
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 8 Aug 2003 19:19:32 +0000 (19:19 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 8 Aug 2003 19:19:32 +0000 (19:19 +0000)
some debugging malloc packages do.

src/pl/plpgsql/src/pl_comp.c

index 2cc43f86246cf1b707d51f9203b90e2911ab2680..e4d7b3c062c87ed8d11e7399a78d18641ab5351a 100644 (file)
@@ -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;