summaryrefslogtreecommitdiff
path: root/data/vim/patches/8.1.0130
diff options
context:
space:
mode:
Diffstat (limited to 'data/vim/patches/8.1.0130')
-rw-r--r--data/vim/patches/8.1.0130169
1 files changed, 169 insertions, 0 deletions
diff --git a/data/vim/patches/8.1.0130 b/data/vim/patches/8.1.0130
new file mode 100644
index 000000000..ba2232eed
--- /dev/null
+++ b/data/vim/patches/8.1.0130
@@ -0,0 +1,169 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 8.1.0130
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 8.1.0130
+Problem: ":profdel func" does not work if func was called already.
+ (Dominique Pelle)
+Solution: Reset uf_profiling and add a flag to indicate initialization was
+ done.
+Files: src/structs.h, src/userfunc.c
+
+
+*** ../vim-8.1.0129/src/structs.h 2018-06-23 19:22:45.614486258 +0200
+--- src/structs.h 2018-06-30 18:12:48.678664711 +0200
+***************
+*** 1345,1350 ****
+--- 1345,1351 ----
+ garray_T uf_lines; /* function lines */
+ #ifdef FEAT_PROFILE
+ int uf_profiling; /* TRUE when func is being profiled */
++ int uf_prof_initialized;
+ /* profiling the function as a whole */
+ int uf_tm_count; /* nr of calls */
+ proftime_T uf_tm_total; /* time spent in function + children */
+*** ../vim-8.1.0129/src/userfunc.c 2018-05-22 18:31:30.001365739 +0200
+--- src/userfunc.c 2018-06-30 18:20:15.704075693 +0200
+***************
+*** 293,302 ****
+ fp->uf_scoped = NULL;
+
+ #ifdef FEAT_PROFILE
+- fp->uf_tml_count = NULL;
+- fp->uf_tml_total = NULL;
+- fp->uf_tml_self = NULL;
+- fp->uf_profiling = FALSE;
+ if (prof_def_func())
+ func_do_profile(fp);
+ #endif
+--- 293,298 ----
+***************
+*** 706,711 ****
+--- 702,708 ----
+ #ifdef FEAT_PROFILE
+ proftime_T wait_start;
+ proftime_T call_start;
++ int started_profiling = FALSE;
+ #endif
+
+ /* If depth of calling is getting too high, don't execute the function */
+***************
+*** 921,927 ****
+--- 918,927 ----
+ if (do_profiling == PROF_YES)
+ {
+ if (!fp->uf_profiling && has_profiling(FALSE, fp->uf_name, NULL))
++ {
++ started_profiling = TRUE;
+ func_do_profile(fp);
++ }
+ if (fp->uf_profiling
+ || (fc->caller != NULL && fc->caller->func->uf_profiling))
+ {
+***************
+*** 965,970 ****
+--- 965,973 ----
+ profile_add(&fc->caller->func->uf_tm_children, &call_start);
+ profile_add(&fc->caller->func->uf_tml_children, &call_start);
+ }
++ if (started_profiling)
++ // make a ":profdel func" stop profiling the function
++ fp->uf_profiling = FALSE;
+ }
+ #endif
+
+***************
+*** 2522,2544 ****
+ {
+ 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) * len));
+! if (fp->uf_tml_total == NULL)
+! fp->uf_tml_total = (proftime_T *)alloc_clear((unsigned)
+! (sizeof(proftime_T) * len));
+! if (fp->uf_tml_self == NULL)
+! fp->uf_tml_self = (proftime_T *)alloc_clear((unsigned)
+! (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)
+! return; /* out of memory */
+
+ fp->uf_profiling = TRUE;
+ }
+--- 2525,2552 ----
+ {
+ int len = fp->uf_lines.ga_len;
+
+! if (!fp->uf_prof_initialized)
+! {
+! 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) * len));
+! if (fp->uf_tml_total == NULL)
+! fp->uf_tml_total = (proftime_T *)alloc_clear(
+! (unsigned)(sizeof(proftime_T) * len));
+! if (fp->uf_tml_self == NULL)
+! fp->uf_tml_self = (proftime_T *)alloc_clear(
+! (unsigned)(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)
+! return; /* out of memory */
+! fp->uf_prof_initialized = TRUE;
+! }
+
+ fp->uf_profiling = TRUE;
+ }
+***************
+*** 2568,2574 ****
+ {
+ --todo;
+ fp = HI2UF(hi);
+! if (fp->uf_profiling)
+ {
+ if (sorttab != NULL)
+ sorttab[st_len++] = fp;
+--- 2576,2582 ----
+ {
+ --todo;
+ fp = HI2UF(hi);
+! if (fp->uf_prof_initialized)
+ {
+ if (sorttab != NULL)
+ sorttab[st_len++] = fp;
+*** ../vim-8.1.0129/src/version.c 2018-06-30 17:09:23.039956879 +0200
+--- src/version.c 2018-06-30 18:12:14.990860555 +0200
+***************
+*** 791,792 ****
+--- 791,794 ----
+ { /* Add new patch number below this line */
++ /**/
++ 130,
+ /**/
+
+
+--
+hundred-and-one symptoms of being an internet addict:
+149. You find your computer sexier than your girlfriend
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///