comparison src/proto/eval.pro @ 33160:4ecf54d709b3 v9.0.1862

patch 9.0.1862: Vim9 Garbage Collection issues Commit: https://github.com/vim/vim/commit/e651e110c17656a263dd017b14c85b332163a58d Author: Yegappan Lakshmanan <yegappan@yahoo.com> Date: Mon Sep 4 07:51:01 2023 +0200 patch 9.0.1862: Vim9 Garbage Collection issues Problem: Vim9 Garbage Collection issues Solution: Class members are garbage collected early leading to use-after-free problems. Handle the garbage collection of classes properly. closes: #13019 Signed-off-by: Christian Brabandt <cb@256bit.org> Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
author Christian Brabandt <cb@256bit.org>
date Mon, 04 Sep 2023 08:00:06 +0200
parents 705d0e1329a5
children 19cdfe768104
comparison
equal deleted inserted replaced
33159:90b7e7236474 33160:4ecf54d709b3
57 int set_ref_in_ht(hashtab_T *ht, int copyID, list_stack_T **list_stack); 57 int set_ref_in_ht(hashtab_T *ht, int copyID, list_stack_T **list_stack);
58 int set_ref_in_dict(dict_T *d, int copyID); 58 int set_ref_in_dict(dict_T *d, int copyID);
59 int set_ref_in_list(list_T *ll, int copyID); 59 int set_ref_in_list(list_T *ll, int copyID);
60 int set_ref_in_list_items(list_T *l, int copyID, ht_stack_T **ht_stack); 60 int set_ref_in_list_items(list_T *l, int copyID, ht_stack_T **ht_stack);
61 int set_ref_in_callback(callback_T *cb, int copyID); 61 int set_ref_in_callback(callback_T *cb, int copyID);
62 int set_ref_in_item_class(class_T *cl, int copyID, ht_stack_T **ht_stack, list_stack_T **list_stack);
62 int set_ref_in_item(typval_T *tv, int copyID, ht_stack_T **ht_stack, list_stack_T **list_stack); 63 int set_ref_in_item(typval_T *tv, int copyID, ht_stack_T **ht_stack, list_stack_T **list_stack);
63 char_u *echo_string_core(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int composite_val); 64 char_u *echo_string_core(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID, int echo_style, int restore_copyID, int composite_val);
64 char_u *echo_string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID); 65 char_u *echo_string(typval_T *tv, char_u **tofree, char_u *numbuf, int copyID);
65 int buf_byteidx_to_charidx(buf_T *buf, int lnum, int byteidx); 66 int buf_byteidx_to_charidx(buf_T *buf, int lnum, int byteidx);
66 int buf_charidx_to_byteidx(buf_T *buf, int lnum, int charidx); 67 int buf_charidx_to_byteidx(buf_T *buf, int lnum, int charidx);