Mercurial > vim
diff src/testing.c @ 18991:847cc7932c42 v8.2.0056
patch 8.2.0056: execution stack is incomplete and inefficient
Commit: https://github.com/vim/vim/commit/1a47ae32cdc19b0fd5a82e19fe5fddf45db1a506
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 29 23:04:25 2019 +0100
patch 8.2.0056: execution stack is incomplete and inefficient
Problem: Execution stack is incomplete and inefficient.
Solution: Introduce a proper execution stack and use it instead of
sourcing_name/sourcing_lnum. Create a string only when used.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 29 Dec 2019 23:15:04 +0100 |
parents | 5c405689da3e |
children | ba9f50bfda83 |
line wrap: on
line diff
--- a/src/testing.c +++ b/src/testing.c @@ -21,22 +21,24 @@ static void prepare_assert_error(garray_T *gap) { - char buf[NUMBUFLEN]; + char buf[NUMBUFLEN]; + char_u *sname = estack_sfile(); ga_init2(gap, 1, 100); - if (sourcing_name != NULL) + if (sname != NULL) { - ga_concat(gap, sourcing_name); - if (sourcing_lnum > 0) + ga_concat(gap, sname); + if (SOURCING_LNUM > 0) ga_concat(gap, (char_u *)" "); } - if (sourcing_lnum > 0) + if (SOURCING_LNUM > 0) { - sprintf(buf, "line %ld", (long)sourcing_lnum); + sprintf(buf, "line %ld", (long)SOURCING_LNUM); ga_concat(gap, (char_u *)buf); } - if (sourcing_name != NULL || sourcing_lnum > 0) + if (sname != NULL || SOURCING_LNUM > 0) ga_concat(gap, (char_u *)": "); + vim_free(sname); } /*