diff options
Diffstat (limited to 'data/vim/patches/8.1.0130')
-rw-r--r-- | data/vim/patches/8.1.0130 | 169 |
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 /// |