Mercurial > vim
diff src/profiler.c @ 17899:48fd0712dad8 v8.1.1946
patch 8.1.1946: memory error when profiling a function without a script ID
Commit: https://github.com/vim/vim/commit/163588005da3a240e49416093d0d0251951d60a1
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Aug 30 18:37:26 2019 +0200
patch 8.1.1946: memory error when profiling a function without a script ID
Problem: Memory error when profiling a function without a script ID.
Solution: Check for missing script ID. (closes https://github.com/vim/vim/issues/4877)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 30 Aug 2019 18:45:03 +0200 |
parents | 0f7ae8010787 |
children | ed222e264905 |
line wrap: on
line diff
--- a/src/profiler.c +++ b/src/profiler.c @@ -690,13 +690,16 @@ func_dump_profile(FILE *fd) fprintf(fd, "FUNCTION <SNR>%s()\n", fp->uf_name + 3); else fprintf(fd, "FUNCTION %s()\n", fp->uf_name); - p = home_replace_save(NULL, - get_scriptname(fp->uf_script_ctx.sc_sid)); - if (p != NULL) + if (fp->uf_script_ctx.sc_sid > 0) { - fprintf(fd, " Defined: %s line %ld\n", + p = home_replace_save(NULL, + get_scriptname(fp->uf_script_ctx.sc_sid)); + if (p != NULL) + { + fprintf(fd, " Defined: %s line %ld\n", p, (long)fp->uf_script_ctx.sc_lnum); - vim_free(p); + vim_free(p); + } } if (fp->uf_tm_count == 1) fprintf(fd, "Called 1 time\n");