# HG changeset patch # User John W. Eaton # Date 1632245561 14400 # Node ID 3e419a830e90507dbcdeb791b3dc6ebf493ef5d1 # Parent a87e5f9d5446c4a8107aae02b4509566a9fe4810# Parent 37ddca7ad9cb06ad018388bd50b3bb886e5984b5 maint: merge stable to default. diff -r a87e5f9d5446 -r 3e419a830e90 libinterp/corefcn/stack-frame.cc --- a/libinterp/corefcn/stack-frame.cc Tue Sep 21 12:30:32 2021 -0400 +++ b/libinterp/corefcn/stack-frame.cc Tue Sep 21 13:32:41 2021 -0400 @@ -200,7 +200,7 @@ void set_script_offsets (void); void set_script_offsets_internal (const std::map& symbols); + symbol_record>& symbols); void resize_and_update_script_offsets (const symbol_record& sym); @@ -1866,6 +1866,11 @@ std::map tmp_symbols; tmp_symbols[sym.name ()] = sym; set_script_offsets_internal (tmp_symbols); + + // set_script_offsets_internal may have modified + // m_lexical_frame_offsets and m_value_offsets. + + frame_offset = m_lexical_frame_offsets.at (data_offset); } data_offset = m_value_offsets.at (data_offset); diff -r a87e5f9d5446 -r 3e419a830e90 test/bug-61191/bug-61191.tst --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/bug-61191/bug-61191.tst Tue Sep 21 13:32:41 2021 -0400 @@ -0,0 +1,36 @@ +######################################################################## +## +## Copyright (C) 2021 The Octave Project Developers +## +## See the file COPYRIGHT.md in the top-level directory of this +## distribution or . +## +## This file is part of Octave. +## +## Octave is free software: you can redistribute it and/or modify it +## under the terms of the GNU General Public License as published by +## the Free Software Foundation, either version 3 of the License, or +## (at your option) any later version. +## +## Octave is distributed in the hope that it will be useful, but +## WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with Octave; see the file COPYING. If not, see +## . +## +######################################################################## + +%!test <61191> +%! unwind_protect +%! addpath ("subdir"); +%! omc_1 = rand (3, 1); +%! Tc_1 = rand (3, 1); +%! bug_61191 +%! assert (omckk, omc_1); +%! assert (Tckk, Tc_1); +%! unwind_protect_cleanup +%! rmpath ("subdir"); +%! end_unwind_protect diff -r a87e5f9d5446 -r 3e419a830e90 test/bug-61191/module.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/bug-61191/module.mk Tue Sep 21 13:32:41 2021 -0400 @@ -0,0 +1,5 @@ +bug_61191_TEST_FILES = \ + %reldir%/bug-61191.tst \ + %reldir%/subdir/bug_61191.m + +TEST_FILES += $(bug_61191_TEST_FILES) diff -r a87e5f9d5446 -r 3e419a830e90 test/bug-61191/subdir/bug_61191.m --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/bug-61191/subdir/bug_61191.m Tue Sep 21 13:32:41 2021 -0400 @@ -0,0 +1,4 @@ +kk = 1; +eval (['omckk = omc_' num2str(kk) ';']); +eval (['Tckk = Tc_' num2str(kk) ';']); +eval (['omc_' num2str(kk) ' = omckk;']); diff -r a87e5f9d5446 -r 3e419a830e90 test/module.mk --- a/test/module.mk Tue Sep 21 12:30:32 2021 -0400 +++ b/test/module.mk Tue Sep 21 13:32:41 2021 -0400 @@ -96,6 +96,7 @@ include %reldir%/bug-60237/module.mk include %reldir%/bug-60882/module.mk include %reldir%/bug-61105/module.mk +include %reldir%/bug-61191/module.mk include %reldir%/class-concat/module.mk include %reldir%/classdef/module.mk include %reldir%/classdef-multiple-inheritance/module.mk