Mercurial > octave
diff libinterp/octave-value/ov-flt-re-mat.cc @ 18197:0d5721873d6b
avoid some tests that rely on ordering of enum values
* ov-base-sparse.cc (octave_base_sparse<T>::map): Use explicit list of
umap_X cases instead of relying on specific ordering of enum values.
* ov-float.cc (octave_float_scalar::map): Likewise.
* ov-flt-re-mat.cc (octave_float_matrix::map): Likewise.
* ov-re-mat.cc (octave_matrix::map): Likewise.
* ov-scalar.cc (octave_scalar::map): Likewise.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 02 Jan 2014 23:18:45 -0500 |
parents | 1b6db9303933 |
children | b7d3e1f762e1 |
line wrap: on
line diff
--- a/libinterp/octave-value/ov-flt-re-mat.cc Thu Jan 02 22:44:37 2014 -0500 +++ b/libinterp/octave-value/ov-flt-re-mat.cc Thu Jan 02 23:18:45 2014 -0500 @@ -817,16 +817,27 @@ case umap_xtoupper: return matrix; + case umap_xisalnum: + case umap_xisalpha: + case umap_xisascii: + case umap_xiscntrl: + case umap_xisdigit: + case umap_xisgraph: + case umap_xislower: + case umap_xisprint: + case umap_xispunct: + case umap_xisspace: + case umap_xisupper: + case umap_xisxdigit: + case umap_xsignbit: + case umap_xtoascii: + { + octave_value str_conv = convert_to_str (true, true); + return error_state ? octave_value () : str_conv.map (umap); + } + default: - // FIXME: this will break if some well-meaning person rearranges - // the enum list in ov-base.h. - if (umap >= umap_xisalnum && umap <= umap_xtoupper) - { - octave_value str_conv = convert_to_str (true, true); - return error_state ? octave_value () : str_conv.map (umap); - } - else - return octave_base_value::map (umap); + return octave_base_value::map (umap); } }