comparison src/userfunc.c @ 15721:e84eb23f4670 v8.1.0868

patch 8.1.0868: crash if triggering garbage collector after a function call commit https://github.com/vim/vim/commit/889da2f2438c8168f9a25dc776360b81109bad44 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Feb 2 14:02:30 2019 +0100 patch 8.1.0868: crash if triggering garbage collector after a function call Problem: Crash if triggering garbage collector after a function call. (Michael Henry) Solution: Don't call the garbage collector right away, do it later. (closes #3894)
author Bram Moolenaar <Bram@vim.org>
date Sat, 02 Feb 2019 14:15:12 +0100
parents 6f1c7e9a6393
children dff66c4670b1
comparison
equal deleted inserted replaced
15720:600c2a9024a2 15721:e84eb23f4670
677 677
678 if (++made_copy == 10000) 678 if (++made_copy == 10000)
679 { 679 {
680 // We have made a lot of copies. This can happen when 680 // We have made a lot of copies. This can happen when
681 // repetitively calling a function that creates a reference to 681 // repetitively calling a function that creates a reference to
682 // itself somehow. Call the garbage collector here to avoid using 682 // itself somehow. Call the garbage collector soon to avoid using
683 // too much memory. 683 // too much memory.
684 made_copy = 0; 684 made_copy = 0;
685 (void)garbage_collect(FALSE); 685 want_garbage_collect = TRUE;
686 } 686 }
687 } 687 }
688 } 688 }
689 689
690 /* 690 /*