Mercurial > vim
comparison src/typval.c @ 31404:60b1d266548d v9.0.1035
patch 9.0.1035: object members are not being marked as used
Commit: https://github.com/vim/vim/commit/d28d7b94f5a76a817585c115dbf6fecac9b0b4cd
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Dec 8 20:42:00 2022 +0000
patch 9.0.1035: object members are not being marked as used
Problem: Object members are not being marked as used, garbage collection
may free them.
Solution: Mark object members as used. Fix reference counting.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 08 Dec 2022 21:45:03 +0100 |
parents | 307f68a41b03 |
children | f7c82a85e88a |
comparison
equal
deleted
inserted
replaced
31403:bb11538fdad2 | 31404:60b1d266548d |
---|---|
83 #ifdef FEAT_JOB_CHANNEL | 83 #ifdef FEAT_JOB_CHANNEL |
84 channel_unref(varp->vval.v_channel); | 84 channel_unref(varp->vval.v_channel); |
85 break; | 85 break; |
86 #endif | 86 #endif |
87 case VAR_CLASS: | 87 case VAR_CLASS: |
88 class_unref(varp); | 88 class_unref(varp->vval.v_class); |
89 break; | 89 break; |
90 case VAR_OBJECT: | 90 case VAR_OBJECT: |
91 object_unref(varp->vval.v_object); | 91 object_unref(varp->vval.v_object); |
92 break; | 92 break; |
93 | 93 |
159 break; | 159 break; |
160 case VAR_INSTR: | 160 case VAR_INSTR: |
161 VIM_CLEAR(varp->vval.v_instr); | 161 VIM_CLEAR(varp->vval.v_instr); |
162 break; | 162 break; |
163 case VAR_CLASS: | 163 case VAR_CLASS: |
164 class_unref(varp); | 164 class_unref(varp->vval.v_class); |
165 break; | 165 break; |
166 case VAR_OBJECT: | 166 case VAR_OBJECT: |
167 object_unref(varp->vval.v_object); | 167 object_unref(varp->vval.v_object); |
168 break; | 168 break; |
169 case VAR_UNKNOWN: | 169 case VAR_UNKNOWN: |