# HG changeset patch # User Markus Mützel # Date 1603312003 -7200 # Node ID 6d37fa1a786ef32ad38e95b5bdd433aa41128b6e # Parent a745a046b70597c698ded18f859a9ac56d0fed2b Fix loading anonymous function handles with empty local vars (bug #59316). * libinterp/corefcn/ls-mat5.cc (read_mat5_binary_element): Check that octave value is not empty before getting scalar map value. diff -r a745a046b705 -r 6d37fa1a786e libinterp/corefcn/ls-mat5.cc --- a/libinterp/corefcn/ls-mat5.cc Thu Oct 22 11:15:54 2020 -0400 +++ b/libinterp/corefcn/ls-mat5.cc Wed Oct 21 22:26:43 2020 +0200 @@ -979,20 +979,24 @@ m2 = subsys_ov.scalar_map_value (); m2 = m2.contents ("MCOS").scalar_map_value (); tc2 = m2.contents ("MCOS").cell_value ()(1 + off).cell_value ()(1); - m2 = tc2.scalar_map_value (); octave::stack_frame::local_vars_map local_vars; - if (m2.nfields () > 0) + if (! tc2.isempty ()) { - octave_value tmp; - - for (auto p0 = m2.begin (); p0 != m2.end (); p0++) + m2 = tc2.scalar_map_value (); + + if (m2.nfields () > 0) { - std::string key = m2.key (p0); - octave_value val = m2.contents (p0); - - local_vars[key] = val; + octave_value tmp; + + for (auto p0 = m2.begin (); p0 != m2.end (); p0++) + { + std::string key = m2.key (p0); + octave_value val = m2.contents (p0); + + local_vars[key] = val; + } } }