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 ab4d12384b3559859456ab25c90941a8504dfe73..93f2ec00910e9c7478d1ea49ef471b237f4d7972 100644 (file)
@@ -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;