Mercurial > octave
diff libinterp/corefcn/pr-output.cc @ 23738:8acd390d16c9
don't use singleton for stream_list object
* oct-stream.h, oct-stream.cc (stream_list): Don't use singleton
pattern. Change all uses.
(stream_list::stream_list): Initialize stdin, stdout, and stderr
streams here.
(stream_list::~stream_list): Close files here.
(stream_list::m_stdin_file, stream_list::m_stdout_file,
stream_list::m_stderr_file): New data members.
(stream_list::stdin_file, stream_list::stdout_file,
stream_list::stderr_file): New functions.
* interpreter.h, interpreter.cc (interpreter::m_stream_list):
New data member.
(interpreter::interpreter): Initialize it. Don't call
initialize_file_io.
(interpreter::~interpreter): Don't call close_files.
(interpreter::get_stream_list): New function.
* file-io.h, file-io.cc (stdin_file, stdout_file, stderr_file,
stdin_stream, stdout_stream, stderr_stream): Delete static variables.
(initialize_file_io, close_files): Delete. These actions are now
handled by the stream_list constructor and destructor.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 06 Jul 2017 13:34:31 -0400 |
parents | f71c0195b19d |
children | 980f39c3ab90 |
line wrap: on
line diff
--- a/libinterp/corefcn/pr-output.cc Thu Jul 06 12:21:42 2017 -0400 +++ b/libinterp/corefcn/pr-output.cc Thu Jul 06 13:34:31 2017 -0400 @@ -3502,8 +3502,8 @@ return retval; } -DEFUN (fdisp, args, , - classes: cell char double function_handle int8 int16 int32 int64 logical single struct uint8 uint16 uint32 uint64 +DEFMETHOD (fdisp, interp, args, , + classes: cell char double function_handle int8 int16 int32 int64 logical single struct uint8 uint16 uint32 uint64 doc: /* -*- texinfo -*- @deftypefn {} {} fdisp (@var{fid}, @var{x}) Display the value of @var{x} on the stream @var{fid}. @@ -3527,9 +3527,11 @@ if (args.length () != 2) print_usage (); - int fid = octave::stream_list::get_file_number (args(0)); - - octave::stream os = octave::stream_list::lookup (fid, "fdisp"); + octave::stream_list& streams = interp.get_stream_list (); + + int fid = streams.get_file_number (args(0)); + + octave::stream os = streams.lookup (fid, "fdisp"); std::ostream *osp = os.output_stream ();