# HG changeset patch # User jwe # Date 1128057998 0 # Node ID 9e59c91ddc99f5ca97945bc111c8b652acdfccf7 # Parent 941f0fc6b596be29db8edf5b92ad1e0f3eb2b897 [project @ 2005-09-30 05:26:38 by jwe] diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2005-09-30 John W. Eaton + + * ov.cc (octave_value::~octave_value): No need to set rep to zero + after deleting. + 2005-09-29 John W. Eaton * syscalls.cc (mk_stat_map): Store mode too. diff --git a/src/ov.cc b/src/ov.cc --- a/src/ov.cc +++ b/src/ov.cc @@ -416,26 +416,18 @@ } octave_value::octave_value (const Cell& c, bool is_csl) - : rep (0) + : rep (is_csl + ? dynamic_cast (new octave_cs_list (c)) + : dynamic_cast (new octave_cell (c))) { - if (is_csl) - rep = new octave_cs_list (c); - else - rep = new octave_cell (c); - rep->count = 1; } octave_value::octave_value (const ArrayN& a, bool is_csl) - : rep (0) + : rep (is_csl + ? dynamic_cast (new octave_cs_list (Cell (a))) + : dynamic_cast (new octave_cell (Cell (a)))) { - Cell c (a); - - if (is_csl) - rep = new octave_cs_list (c); - else - rep = new octave_cell (c); - rep->count = 1; } @@ -779,13 +771,10 @@ } octave_value::octave_value (const octave_value_list& l, bool is_csl) - : rep (0) + : rep (is_csl + ? dynamic_cast (new octave_cs_list (l)) + : dynamic_cast (new octave_list (l))) { - if (is_csl) - rep = new octave_cs_list (l); - else - rep = new octave_list (l); - rep->count = 1; } @@ -815,10 +804,7 @@ #endif if (rep && --rep->count == 0) - { - delete rep; - rep = 0; - } + delete rep; } octave_value *