[mono][interp] Update ref count for local var defs during optimization (#84840)
authorVlad Brezae <brezaevlad@gmail.com>
Fri, 14 Apr 2023 18:15:12 +0000 (21:15 +0300)
committerGitHub <noreply@github.com>
Fri, 14 Apr 2023 18:15:12 +0000 (21:15 +0300)
src/mono/mono/mini/interp/transform.c

index 0882839442312b97a85f996dcb51db205befb5d2..0d1f23b50af57f3e32343cd0146000df27dd2e7c 100644 (file)
@@ -9398,10 +9398,12 @@ retry:
                                        local_defs [dreg].type = LOCAL_VALUE_NONE;
                                        local_defs [dreg].ins = def;
                                        local_defs [dreg].def_index = local_defs [original_dreg].def_index;
+                                       local_defs [dreg].ref_count++;
                                        local_defs [original_dreg].type = LOCAL_VALUE_LOCAL;
                                        local_defs [original_dreg].ins = ins;
                                        local_defs [original_dreg].local = dreg;
                                        local_defs [original_dreg].def_index = ins_index;
+                                       local_defs [original_dreg].ref_count--;
 
                                        local_ref_count [original_dreg]--;
                                        local_ref_count [dreg]++;