# HG changeset patch # User Jaroslav Hajek # Date 1235112827 -3600 # Node ID 76ddf0ab985dcee23e3bfc75e3c71748af6c121f # Parent 3efa512a0957c9b9515663df7111804c50c735fc auto-set cellstr cache when sorting cells diff -r 3efa512a0957 -r 76ddf0ab985d src/ChangeLog --- a/src/ChangeLog Fri Feb 20 07:44:48 2009 +0100 +++ b/src/ChangeLog Fri Feb 20 07:53:47 2009 +0100 @@ -5,6 +5,8 @@ * ov-cell.cc (octave_cell::is_sorted, octave_cell::is_sorted_rows): New methods. * ov-cell.h: Declare them. + * ov-cell.cc (octave_cell::sort): Create result already with + cellstr_cache. 2009-02-20 John W. Eaton diff -r 3efa512a0957 -r 76ddf0ab985d src/ov-cell.cc --- a/src/ov-cell.cc Fri Feb 20 07:44:48 2009 +0100 +++ b/src/ov-cell.cc Fri Feb 20 07:53:47 2009 +0100 @@ -457,7 +457,13 @@ { Array tmp = cellstr_value (); - retval = Cell (tmp.sort (dim, mode)); + tmp = tmp.sort (dim, mode); + + // We do it the hard way to auto-create the result's cache + octave_cell *result = new octave_cell (Cell (tmp)); + result->cellstr_cache = tmp; + + retval = result; } else error ("sort: only cell arrays of character strings may be sorted"); @@ -475,7 +481,13 @@ { Array tmp = cellstr_value (); - retval = Cell (tmp.sort (sidx, dim, mode)); + tmp = tmp.sort (sidx, dim, mode); + + // We do it the hard way to auto-create the result's cache + octave_cell *result = new octave_cell (Cell (tmp)); + result->cellstr_cache = tmp; + + retval = result; } else error ("sort: only cell arrays of character strings may be sorted");