Patch 8.0.1680
Problem:    Memory allocated by libvterm does not show up in profile.
Solution:   Pass allocater functions to vterm_new().
Files:      src/terminal.c


*** ../vim-8.0.1679/src/terminal.c      2018-04-05 21:04:09.462997599 +0200
--- src/terminal.c      2018-04-10 11:49:31.228276406 +0200
***************
*** 39,52 ****
   *
   * TODO:
   * - Add a way to set the 16 ANSI colors, to be used for 'termguicolors' and 
in
!  *   the GUI.
   * - 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)
--- 39,50 ----
   *
   * TODO:
   * - Add a way to set the 16 ANSI colors, to be used for 'termguicolors' and 
in
!  *   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.
   * - in GUI vertical split causes problems.  Cursor is flickering. (Hirohito
   *   Higashi, 2017 Sep 19)
   * - after resizing windows overlap. (Boris Staletic, #2164)
***************
*** 3330,3335 ****
--- 3328,3353 ----
  };
  
  /*
+  * 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.
   */
      static void
***************
*** 3340,3346 ****
      VTermState            *state;
      VTermValue            value;
  
!     vterm = vterm_new(rows, cols);
      term->tl_vterm = vterm;
      screen = vterm_obtain_screen(vterm);
      vterm_screen_set_callbacks(screen, &screen_callbacks, term);
--- 3358,3364 ----
      VTermState            *state;
      VTermValue            value;
  
!     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);
*** ../vim-8.0.1679/src/version.c       2018-04-08 16:34:18.007712750 +0200
--- src/version.c       2018-04-10 11:50:55.507684564 +0200
***************
*** 764,765 ****
--- 764,767 ----
  {   /* Add new patch number below this line */
+ /**/
+     1680,
  /**/

-- 
Amazing but true: If all the salmon caught in Canada in one year were laid
end to end across the Sahara Desert, the smell would be absolutely awful.

 /// Bram Moolenaar -- b...@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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui