2016-08-19 17:08 GMT+03:00 Yegappan Lakshmanan <[email protected]>: > Hi all, > > On Thu, Aug 18, 2016 at 5:47 AM, Yegappan Lakshmanan > <[email protected]> wrote: >> Hi all, >> >> The attached patch adds support for setting and getting a context to/from >> a quickfix/location list. There is a refcount problem with this diff (which >> I am >> not able to solve). >> >> If the context is a number or a string, then the patch works without any >> issues. If the context is a List or a Dict, then Vim crashes if garbage >> collection runs. For example, the following works: >> >> :call setqflist([], 'a', {'context':[1,2,3]}) >> :echo getqflist({'context':1}) >> >> But the following doesn't work: >> >> :call setqflist([], 'a', {'context':[1,2,3]}) >> :call garbagecollect() >> :echo getqflist({'context':1}) >> >> Any suggestions on how to copy the context with proper update to the >> reference count so that garbage collection doesn't free the List/Dict? > > Any suggestions on how to fix the reference count issue?
Check garbagecollect() function from eval.c, it is visiting each and every place where VimL value may be referenced at the point of next main loop cycle start; there exist temporary values which must be removed at that point which is fine, your value is saved somewhere and not removed, so you must add code there. > > Thanks, > Yegappan > > -- > -- > 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 [email protected]. > For more options, visit https://groups.google.com/d/optout. -- -- 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 [email protected]. For more options, visit https://groups.google.com/d/optout.
