changeset 17205:334d8edd48bc

lo-regexp.cc: prevent cast of negative floating point value to size_t. * regexp.cc: simplify two expressions like "static_cast<size_t> (e - 1) + 1" to "static_cast<size_t> (e), where 'e' is a nonnegative index value of type double. This prevents a cast of -1.0 to the unsigned integral type "size_t" whenever 'e' is zero. A test case where this occurs (for the second change) is regexprep ('World', '^', 'Hello ', 'emptymatch').
author Philipp Kutin <philipp.kutin@gmail.com>
date Thu, 08 Aug 2013 10:58:37 +0200
parents d87179b38bcf
children ea5830dc6b19
files liboctave/util/lo-regexp.cc
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/util/lo-regexp.cc	Wed Aug 07 22:20:32 2013 -0700
+++ b/liboctave/util/lo-regexp.cc	Thu Aug 08 10:58:37 2013 +0200
@@ -550,7 +550,7 @@
 
           const Matrix pairs (p->token_extents ());
           rep.append (&buffer[from], static_cast<size_t> (start - 1) - from);
-          from = static_cast<size_t> (end - 1) + 1;
+          from = static_cast<size_t> (end);
 
           size_t cur_pos = 0;
 
@@ -608,7 +608,7 @@
           OCTAVE_QUIT;
           rep.append (&buffer[from],
                       static_cast<size_t> (p->start () - 1) - from);
-          from = static_cast<size_t> (p->end () - 1) + 1;
+          from = static_cast<size_t> (p->end ());
           rep.append (repstr);
           p++;
         }