Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
patch 8.0.1680: memory allocated by libvterm is not profiled
Problem:    Memory allocated by libvterm does not show up in profile.
Solution:   Pass allocater functions to vterm_new().
  • Loading branch information
brammool committed Apr 10, 2018
1 parent 672afb9 commit 756ef11
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
26 changes: 22 additions & 4 deletions src/terminal.c
Expand Up @@ -39,14 +39,12 @@
*
* TODO:
* - Add a way to set the 16 ANSI colors, to be used for 'termguicolors' and in
* the GUI.
* the GUI. #2747
* - Win32: Make terminal used for :!cmd in the GUI work better. Allow for
* redirection. Probably in call to channel_set_pipes().
* - implement term_setsize()
* - Copy text in the vterm to the Vim buffer once in a while, so that
* completion works.
* - Adding WinBar to terminal window doesn't display, text isn't shifted down.
* a job that uses 16 colors while Vim is using > 256.
* - in GUI vertical split causes problems. Cursor is flickering. (Hirohito
* Higashi, 2017 Sep 19)
* - after resizing windows overlap. (Boris Staletic, #2164)
Expand Down Expand Up @@ -3329,6 +3327,26 @@ static VTermParserCallbacks parser_fallbacks = {
NULL /* resize */
};

/*
* Use Vim's allocation functions for vterm so profiling works.
*/
static void *
vterm_malloc(size_t size, void *data UNUSED)
{
return alloc_clear(size);
}

static void
vterm_memfree(void *ptr, void *data UNUSED)
{
vim_free(ptr);
}

static VTermAllocatorFunctions vterm_allocator = {
&vterm_malloc,
&vterm_memfree
};

/*
* Create a new vterm and initialize it.
*/
Expand All @@ -3340,7 +3358,7 @@ create_vterm(term_T *term, int rows, int cols)
VTermState *state;
VTermValue value;

vterm = vterm_new(rows, cols);
vterm = vterm_new_with_allocator(rows, cols, &vterm_allocator, NULL);
term->tl_vterm = vterm;
screen = vterm_obtain_screen(vterm);
vterm_screen_set_callbacks(screen, &screen_callbacks, term);
Expand Down
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -762,6 +762,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1680,
/**/
1679,
/**/
Expand Down

0 comments on commit 756ef11

Please sign in to comment.