Mercurial > octave
changeset 27162:eab1c573c4fc
store reference to lexer in reader instead of pointer
* input.h, input.cc (base_reader::m_lexer): Use reference instead of
pointer since we can always guarantee it to be valid. Update all uses.
(base_reader::base_reader, terminal_reader::terminal_reader,
file_reader::file_reader, input_reader::input_reader): Pass reference
to lexer object, not pointer. Update all uses.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 07 Jun 2019 16:53:09 -0400 |
parents | 7883e6e71b0a |
children | 47c0b11da31a |
files | libinterp/corefcn/input.cc libinterp/corefcn/input.h libinterp/parse-tree/lex.h |
diffstat | 3 files changed, 17 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/libinterp/corefcn/input.cc Tue Jun 04 13:15:25 2019 +0000 +++ b/libinterp/corefcn/input.cc Fri Jun 07 16:53:09 2019 -0400 @@ -782,17 +782,17 @@ bool base_reader::reading_fcn_file (void) const { - return m_lexer ? m_lexer->m_reading_fcn_file : false; + return m_lexer.m_reading_fcn_file; } bool base_reader::reading_classdef_file (void) const { - return m_lexer ? m_lexer->m_reading_classdef_file : false; + return m_lexer.m_reading_classdef_file; } bool base_reader::reading_script_file (void) const { - return m_lexer ? m_lexer->m_reading_script_file : false; + return m_lexer.m_reading_script_file; } class @@ -800,7 +800,7 @@ { public: - terminal_reader (base_lexer *lxr = nullptr) + terminal_reader (base_lexer& lxr) : base_reader (lxr) { } @@ -820,7 +820,7 @@ { public: - file_reader (FILE *f_arg, base_lexer *lxr = nullptr) + file_reader (FILE *f_arg, base_lexer& lxr) : base_reader (lxr), m_file (f_arg) { } std::string get_input (bool& eof); @@ -841,7 +841,7 @@ { public: - eval_string_reader (const std::string& str, base_lexer *lxr = nullptr) + eval_string_reader (const std::string& str, base_lexer& lxr) : base_reader (lxr), m_eval_string (str) { } @@ -858,15 +858,15 @@ static const std::string s_in_src; }; - input_reader::input_reader (base_lexer *lxr) + input_reader::input_reader (base_lexer& lxr) : m_rep (new terminal_reader (lxr)) { } - input_reader::input_reader (FILE *file, base_lexer *lxr) + input_reader::input_reader (FILE *file, base_lexer& lxr) : m_rep (new file_reader (file, lxr)) { } - input_reader::input_reader (const std::string& str, base_lexer *lxr) + input_reader::input_reader (const std::string& str, base_lexer& lxr) : m_rep (new eval_string_reader (str, lxr)) { }
--- a/libinterp/corefcn/input.h Tue Jun 04 13:15:25 2019 +0000 +++ b/libinterp/corefcn/input.h Fri Jun 07 16:53:09 2019 -0400 @@ -198,7 +198,7 @@ friend class input_reader; - base_reader (base_lexer *lxr) + base_reader (base_lexer& lxr) : m_count (1), m_pflag (0), m_lexer (lxr) { } @@ -247,7 +247,7 @@ int m_pflag; - base_lexer *m_lexer; + base_lexer& m_lexer; static const std::string s_in_src; }; @@ -256,11 +256,11 @@ { public: - input_reader (base_lexer *lxr = nullptr); + input_reader (base_lexer& lxr); - input_reader (FILE *file, base_lexer *lxr = nullptr); + input_reader (FILE *file, base_lexer& lxr); - input_reader (const std::string& str, base_lexer *lxr = nullptr); + input_reader (const std::string& str, base_lexer& lxr); input_reader (const input_reader& ir) {
--- a/libinterp/parse-tree/lex.h Tue Jun 04 13:15:25 2019 +0000 +++ b/libinterp/parse-tree/lex.h Fri Jun 07 16:53:09 2019 -0400 @@ -773,15 +773,15 @@ public: lexer (interpreter& interp) - : base_lexer (interp), m_reader (this) + : base_lexer (interp), m_reader (*this) { } lexer (FILE *file, interpreter& interp) - : base_lexer (interp), m_reader (file, this) + : base_lexer (interp), m_reader (file, *this) { } lexer (const std::string& eval_string, interpreter& interp) - : base_lexer (interp), m_reader (eval_string, this) + : base_lexer (interp), m_reader (eval_string, *this) { } // No copying!