Mercurial > octave
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