view test/bug-45972.tst @ 31189:820d2c802247 stable

fortran_vec: Fix instances of method chaining that may cause dangling pointer. * libinterp/corefcn/quandcc.cc (Fquadcc): Replace method chaining with a separate line for NDArray object to avoid going out of scope. * libinterp/corefcn/__ilu__.cc (F__iluc__): Obtain RowVector and ColumnVector objects in separate line to remain in scope. * libinterp/corefcn/__ichol__.cc (F__icholt__): Obtain RowVector object in separate line to remain in scope. For more details: https://octave.discourse.group/t/3132
author Maged Rifaat <magedrifaat@gmail.com>
date Mon, 15 Aug 2022 00:22:55 +0200
parents 9080316864bf
children
line wrap: on
line source

%!test <*45972>
%! ascii_filename = tempname ();
%! binary_filename = tempname ();
%! f = @ (x, y, varargin) x + y + varargin{1};
%! unwind_protect
%!   save ("-text", ascii_filename, "f");
%!   save ("-binary", binary_filename, "f");
%!   ascii = load (ascii_filename);
%!   binary = load (binary_filename);
%!   assert (f (1, 2, 3), ascii.f (1, 2, 3));
%!   assert (f (1, 2, 3), binary.f (1, 2, 3));
%! unwind_protect_cleanup
%!   unlink (ascii_filename);
%!   unlink (binary_filename);
%! end_unwind_protect

%!testif HAVE_HDF5 <*45972>
%! hdf5_filename = tempname ();
%! f = @ (x, y, varargin) x + y + varargin{1};
%! unwind_protect
%!   save ("-hdf5", hdf5_filename, "f");
%!   hdf5 = load (hdf5_filename);
%!   assert (f (1, 2, 3), hdf5.f (1, 2, 3));
%! unwind_protect_cleanup
%!   unlink (hdf5_filename);
%! end_unwind_protect