Mercurial > octave
diff libinterp/corefcn/comment-list.cc @ 17693:efbe746f8fa8
eliminate octave_comment_buffer singleton
* lex.h (octave_base_lexer::comment_buffer): New class adapted from
octave_comment_buffer class. No longer a singleton class.
(octave_base_lexer::comment_buffer::reset): New function.
(octave_base_lexer::reset): Call comment_buf.reset.
(octave_base_lexer::comment_buf): New data member.
(octave_base_lexer::get_comment): New function.
* comment-list.h, comment-list.cc (octave_comment_buffer): Delete.
Change all uses of octave_comment_buffer to use local comment_buf
object instead.
* parse.h (octave_base_parser::make_statement): New member function.
* oct-parse.in.yy (make_statement): Delete.
Change all uses of make_statement to use the member function instead.
(safe_fclose): Don't extract and delete comment list here.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 18 Oct 2013 21:00:33 -0400 |
parents | 68fc671a9339 |
children | d63878346099 |
line wrap: on
line diff
--- a/libinterp/corefcn/comment-list.cc Fri Oct 18 16:27:44 2013 -0700 +++ b/libinterp/corefcn/comment-list.cc Fri Oct 18 21:00:33 2013 -0400 @@ -25,13 +25,10 @@ #endif #include "lo-utils.h" -#include "singleton-cleanup.h" #include "comment-list.h" #include "error.h" -octave_comment_buffer *octave_comment_buffer::instance = 0; - octave_comment_list * octave_comment_list::dup (void) const { @@ -46,61 +43,3 @@ return new_cl; } - -bool -octave_comment_buffer::instance_ok (void) -{ - bool retval = true; - - if (! instance) - { - instance = new octave_comment_buffer (); - - if (instance) - singleton_cleanup_list::add (cleanup_instance); - } - - if (! instance) - { - ::error ("unable to create comment buffer object"); - - retval = false; - } - - return retval; -} - -void -octave_comment_buffer::append (const std::string& s, - octave_comment_elt::comment_type t) -{ - if (instance_ok ()) - instance->do_append (s, t); -} - -octave_comment_list * -octave_comment_buffer::get_comment (void) -{ - return (instance_ok ()) ? instance->do_get_comment () : 0; -} - -void -octave_comment_buffer::do_append (const std::string& s, - octave_comment_elt::comment_type t) -{ - comment_list->append (s, t); -} - -octave_comment_list * -octave_comment_buffer::do_get_comment (void) -{ - octave_comment_list *retval = 0; - - if (comment_list && comment_list->length () > 0) - { - retval = comment_list; - comment_list = new octave_comment_list (); - } - - return retval; -}