# HG changeset patch # User Pascal Dupuis # Date 1296037233 18000 # Node ID 18e9a8da7d18b30b9899a156554a9b1ecc06f418 # Parent 55ebf5df9ea6d3d37d2cf92b0304165c1558c8a6 eliminate some -Weffc++ warnings diff -r 55ebf5df9ea6 -r 18e9a8da7d18 src/ChangeLog --- a/src/ChangeLog Tue Jan 25 21:38:05 2011 -0800 +++ b/src/ChangeLog Wed Jan 26 05:20:33 2011 -0500 @@ -1,3 +1,24 @@ +2011-01-26 John W. Eaton + +2011-01-26 Pascal Dupuis + John W. Eaton + + * graphics.h.in (scaler::scaler (const std::string&)): New constructor. + (graphics_handle::operator++, graphics_hanlde::operator--): + Implement as recommended by Effective C++. + + * graphics.h.in (class base_property, class array_property, + class children_property, class property, class graphics_xform, + class graphics_event): Explicitelly iniatialize + all data members in constructor initialisation list. + * gl-render.cc (class patch_tesselator): Likewise + * graphics.cc (class radio_values, class gh_manager), + (class callback_event, class set_event): Likewise. + + * graphics.h.in (class base_graphics_property): Disallow copying. + * graphics.cc (class function_event): Likewise. + (function_event::function_event (void)): Delete implementation. + 2011-01-25 Rik * DLD-FUNCTIONS/config-module.awk: Use automake variable for diff -r 55ebf5df9ea6 -r 18e9a8da7d18 src/gl-render.cc --- a/src/gl-render.cc Tue Jan 25 21:38:05 2011 -0800 +++ b/src/gl-render.cc Wed Jan 26 05:20:33 2011 -0500 @@ -416,7 +416,8 @@ patch_tesselator (opengl_renderer *r, int cmode, int lmode, int idx = 0) : opengl_tesselator (), renderer (r), color_mode (cmode), light_mode (lmode), index (idx), - first (true) { } + first (true), tmp_vdata () + { } protected: void begin (GLenum type) diff -r 55ebf5df9ea6 -r 18e9a8da7d18 src/graphics.cc --- a/src/graphics.cc Tue Jan 25 21:38:05 2011 -0800 +++ b/src/graphics.cc Wed Jan 26 05:20:33 2011 -0500 @@ -803,6 +803,7 @@ } radio_values::radio_values (const std::string& opt_string) + : default_val (), possible_vals () { size_t beg = 0; size_t len = opt_string.length (); @@ -5518,7 +5519,8 @@ // scalar values for the first argument. gh_manager::gh_manager (void) : handle_map (), handle_free_list (), - next_handle (-1.0 - (rand () + 1.0) / (RAND_MAX + 2.0)) + next_handle (-1.0 - (rand () + 1.0) / (RAND_MAX + 2.0)), + figure_list (), graphics_lock (), event_queue (), callback_objects () { handle_map[0] = graphics_object (new root_figure ()); @@ -5613,7 +5615,9 @@ private: callback_event (void) - : base_graphics_event () { } + : base_graphics_event (), handle (), + callback_name (), callback_data () + { } private: graphics_handle handle; @@ -5635,12 +5639,19 @@ } private: - function_event (void) - : base_graphics_event () { } - -private: + graphics_event::event_fcn function; + void* function_data; + + // function_event objects must be created with at least a function. + function_event (void); + + // No copying! + + function_event (const function_event &); + + function_event & operator = (const function_event &); }; class @@ -5661,7 +5672,10 @@ private: set_event (void) - : base_graphics_event () { } + : base_graphics_event (), + // FIXME: it it private in order not to be used ? + handle (), property_name (), property_value () + { } private: graphics_handle handle; diff -r 55ebf5df9ea6 -r 18e9a8da7d18 src/graphics.h.in --- a/src/graphics.h.in Tue Jan 25 21:38:05 2011 -0800 +++ b/src/graphics.h.in Wed Jan 26 05:20:33 2011 -0500 @@ -83,30 +83,32 @@ return ok () ? octave_value (val) : octave_value (Matrix ()); } - graphics_handle operator ++ (void) + // Prefix increment/decrement operators. + graphics_handle& operator ++ (void) { ++val; return *this; } - graphics_handle operator ++ (int) - { - graphics_handle h = *this; - ++val; - return h; - } - - graphics_handle operator -- (void) + graphics_handle& operator -- (void) { --val; return *this; } - graphics_handle operator -- (int) + // Postfix increment/decrement operators. + const graphics_handle operator ++ (int) { - graphics_handle h = *this; - --val; - return h; + graphics_handle old_value = *this; + ++(*this); + return old_value; + } + + const graphics_handle operator -- (int) + { + graphics_handle old_value = *this; + --(*this); + return old_value; } bool ok (void) const { return ! xisnan (val); } @@ -254,6 +256,12 @@ scaler (const scaler& s) : rep (s.rep->clone()) { } + scaler (const std::string& s) + : rep (s == "log" + ? new log_scaler () + : (s == "linear" ? new lin_scaler () : new base_scaler ())) + { } + ~scaler (void) { delete rep; } Matrix scale (const Matrix& m) const @@ -318,13 +326,18 @@ friend class property; public: - base_property (void) : id (-1), count (1) { } + base_property (void) + : id (-1), count (1), name (), parent (), hidden (), listeners () + { } base_property (const std::string& s, const graphics_handle& h) - : id (-1), count (1), name (s), parent (h), hidden (false) { } + : id (-1), count (1), name (s), parent (h), hidden (false), listeners () + { } base_property (const base_property& p) - : id (-1), count (1), name (p.name), parent (p.parent), hidden (p.hidden) { } + : id (-1), count (1), name (p.name), parent (p.parent), + hidden (p.hidden), listeners () + { } virtual ~base_property (void) { } @@ -498,7 +511,7 @@ string_array_property (const std::string& s, const graphics_handle& h, const std::string& val = "", const char& sep = '|', const desired_enum& typ = string_t) - : base_property (s, h), desired_type (typ), separator (sep) + : base_property (s, h), desired_type (typ), separator (sep), str () { size_t pos = 0; @@ -521,7 +534,7 @@ string_array_property (const std::string& s, const graphics_handle& h, const Cell& c, const char& sep = '|', const desired_enum& typ = string_t) - : base_property (s, h), desired_type (typ), separator (sep) + : base_property (s, h), desired_type (typ), separator (sep), str () { if (c.is_cellstr ()) { @@ -1081,14 +1094,17 @@ { public: array_property (void) - : base_property ("", graphics_handle ()), data (Matrix ()) + : base_property ("", graphics_handle ()), data (Matrix ()), + xmin (), xmax (), xminp (), type_constraints (), size_constraints () { get_data_limits (); } array_property (const std::string& nm, const graphics_handle& h, const octave_value& m) - : base_property (nm, h), data (m) + : base_property (nm, h), data (m), + xmin (), xmax (), xminp (), type_constraints (), size_constraints () + { get_data_limits (); } @@ -1098,7 +1114,9 @@ // copy constraints. array_property (const array_property& p) : base_property (p), data (p.data), - xmin (p.xmin), xmax (p.xmax), xminp (p.xminp) { } + xmin (p.xmin), xmax (p.xmax), xminp (p.xminp), + type_constraints (), size_constraints () + { } octave_value get (void) const { return data; } @@ -1373,20 +1391,20 @@ { public: children_property (void) - : base_property ("", graphics_handle ()) + : base_property ("", graphics_handle ()), children_list () { do_init_children (Matrix ()); } children_property (const std::string& nm, const graphics_handle& h, const Matrix &val) - : base_property (nm, h) + : base_property (nm, h), children_list () { do_init_children (val); } children_property (const children_property& p) - : base_property (p) + : base_property (p), children_list () { do_init_children (p.children_list); } @@ -1604,9 +1622,8 @@ property (base_property *bp, bool persist = false) : rep (bp) { if (persist) rep->count++; } - property (const property& p) + property (const property& p) : rep (p.rep) { - rep = p.rep; rep->count++; } @@ -2188,8 +2205,6 @@ base_graphics_object (void) : count (1) { } - base_graphics_object (const base_graphics_object&) { } - virtual ~base_graphics_object (void) { } virtual void mark_modified (void) @@ -2403,6 +2418,12 @@ protected: // A reference count. int count; + + // No copying! + + base_graphics_object (const base_graphics_object&); + + base_graphics_object& operator = (const base_graphics_object&); }; class OCTINTERP_API graphics_object @@ -2413,9 +2434,8 @@ graphics_object (base_graphics_object *new_rep) : rep (new_rep) { } - graphics_object (const graphics_object& obj) + graphics_object (const graphics_object& obj) : rep (obj.rep) { - rep = obj.rep; rep->count++; } @@ -2958,9 +2978,9 @@ { public: graphics_xform (void) - : xform (xform_eye ()), xform_inv (xform_eye ()), zlim (1, 2, 0.0) + : xform (xform_eye ()), xform_inv (xform_eye ()), + sx ("linear"), sy ("linear"), sz ("linear"), zlim (1, 2, 0.0) { - sx = sy = sz = "linear"; zlim(1) = 1.0; } @@ -4204,9 +4224,8 @@ graphics_event (void) : rep (0) { } - graphics_event (const graphics_event& e) + graphics_event (const graphics_event& e) : rep (e.rep) { - rep = e.rep; rep->count++; }