# HG changeset patch # User John W. Eaton # Date 1294930813 18000 # Node ID 6dbf9bcce90e0152e93ad7a2683f400def5f619b # Parent a1386fab2a023ea554029c783512eea6cf371a7b more data member initialization fixes diff -r a1386fab2a02 -r 6dbf9bcce90e src/ChangeLog --- a/src/ChangeLog Thu Jan 13 08:04:23 2011 -0500 +++ b/src/ChangeLog Thu Jan 13 10:00:13 2011 -0500 @@ -1,3 +1,13 @@ +2011-01-13 John W. Eaton + + * base-list.h (class octave_base_list): Provide explicit + default and copy construtors, assignment operator, and destructor. + * load-path.h (load_path::dir_info::class_info): Likewise. + + * load-path.h (load_path::dir_info::dir_info): Initialize all + members in initializaition list. + * lex.h (lexical_feedback::lexical_feedback): Likewise. + 2011-01-13 John W. Eaton * cutils.h: New file. diff -r a1386fab2a02 -r 6dbf9bcce90e src/base-list.h --- a/src/base-list.h Thu Jan 13 08:04:23 2011 -0500 +++ b/src/base-list.h Thu Jan 13 10:00:13 2011 -0500 @@ -86,6 +86,23 @@ // For backward compatibility. void append (const elt_type& s) { lst.push_back (s); } +protected: + + octave_base_list (void) : lst () { } + + octave_base_list (const octave_base_list& bl) : lst (bl.lst) { } + + octave_base_list& operator = (const octave_base_list& bl) + { + if (this != &bl) + { + lst = bl.lst; + } + return *this; + } + + ~octave_base_list (void) { } + private: std::list lst; diff -r a1386fab2a02 -r 6dbf9bcce90e src/lex.h --- a/src/lex.h Thu Jan 13 08:04:23 2011 -0500 +++ b/src/lex.h Thu Jan 13 10:00:13 2011 -0500 @@ -57,7 +57,20 @@ { public: - lexical_feedback (void) { init (); } + lexical_feedback (void) + : bracketflag (0), braceflag (0), looping (0), + convert_spaces_to_comma (true), at_beginning_of_statement (true), + defining_func (0), looking_at_function_handle (false), + looking_at_return_list (false), looking_at_parameter_list (false), + looking_at_decl_list (false), looking_at_initializer_expression (false), + looking_at_matrix_or_assign_lhs (false), looking_at_object_index (), + looking_for_object_index (false), looking_at_indirect_ref (false), + parsed_function_name (), parsing_class_method (false), + maybe_classdef_get_set_method (false), parsing_classdef (false), + quote_is_transpose (false), pending_local_variables () + { + init (); + } ~lexical_feedback (void) { } diff -r a1386fab2a02 -r 6dbf9bcce90e src/load-path.h --- a/src/load-path.h Thu Jan 13 08:04:23 2011 -0500 +++ b/src/load-path.h Thu Jan 13 10:00:13 2011 -0500 @@ -261,6 +261,24 @@ struct class_info { + class_info (void) : method_file_map (), private_file_map () { } + + class_info (const class_info& ci) + : method_file_map (ci.method_file_map), + private_file_map (ci.private_file_map) { } + + class_info& operator = (const class_info& ci) + { + if (this != &ci) + { + method_file_map = ci.method_file_map; + private_file_map = ci.private_file_map; + } + return *this; + } + + ~class_info (void) { } + fcn_file_map_type method_file_map; fcn_file_map_type private_file_map; }; @@ -274,9 +292,19 @@ // This default constructor is only provided so we can create a // std::map of dir_info objects. You should not use this // constructor for any other purpose. - dir_info (void) { } + dir_info (void) + : dir_name (), abs_dir_name (), is_relative (false), + dir_mtime (), dir_time_last_checked (), all_files (), + fcn_files (), private_file_map (), method_file_map () + { } - dir_info (const std::string& d) : dir_name (d) { initialize (); } + dir_info (const std::string& d) + : dir_name (d), abs_dir_name (), is_relative (false), + dir_mtime (), dir_time_last_checked (), all_files (), + fcn_files (), private_file_map (), method_file_map () + { + initialize (); + } dir_info (const dir_info& di) : dir_name (di.dir_name), abs_dir_name (di.abs_dir_name),