changeset 2390:ba222c106395 vim73

Fix: errors for allocating zero bytes when profiling an empty function.
author Bram Moolenaar <bram@vim.org>
date Sat, 24 Jul 2010 16:57:39 +0200
parents d680c97481c1
children f1d95a986dfb
files src/eval.c
diffstat 1 files changed, 7 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c
+++ b/src/eval.c
@@ -21176,18 +21176,21 @@ builtin_function(name)
 func_do_profile(fp)
     ufunc_T	*fp;
 {
+    int		len = fp->uf_lines.ga_len;
+
+    if (len == 0)
+	len = 1;  /* avoid getting error for allocating zero bytes */
     fp->uf_tm_count = 0;
     profile_zero(&fp->uf_tm_self);
     profile_zero(&fp->uf_tm_total);
     if (fp->uf_tml_count == NULL)
-	fp->uf_tml_count = (int *)alloc_clear((unsigned)
-					 (sizeof(int) * fp->uf_lines.ga_len));
+	fp->uf_tml_count = (int *)alloc_clear((unsigned) (sizeof(int) * len));
     if (fp->uf_tml_total == NULL)
 	fp->uf_tml_total = (proftime_T *)alloc_clear((unsigned)
-				  (sizeof(proftime_T) * fp->uf_lines.ga_len));
+						  (sizeof(proftime_T) * len));
     if (fp->uf_tml_self == NULL)
 	fp->uf_tml_self = (proftime_T *)alloc_clear((unsigned)
-				  (sizeof(proftime_T) * fp->uf_lines.ga_len));
+						  (sizeof(proftime_T) * len));
     fp->uf_tml_idx = -1;
     if (fp->uf_tml_count == NULL || fp->uf_tml_total == NULL
 						   || fp->uf_tml_self == NULL)