changeset 30407:597275db9c7f stable

don't return void; pass objects by const ref instead of value * Range.cc (xinit): Pass input octave_int<T> objects by const reference instead of by value. (range<octave_int>::init specializations): Don't return void.
author John W. Eaton <jwe@octave.org>
date Tue, 30 Nov 2021 11:04:27 -0500
parents 20cefb3b0da6
children b9701804901d bc0de453fb6a
files liboctave/array/Range.cc
diffstat 1 files changed, 27 insertions(+), 22 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/array/Range.cc	Mon Nov 29 20:02:44 2021 +0100
+++ b/liboctave/array/Range.cc	Tue Nov 30 11:04:27 2021 -0500
@@ -254,20 +254,25 @@
 
   template <typename T>
   void
-  xinit (octave_int<T> base, octave_int<T> limit, octave_int<T> inc,
-         octave_int<T>& final_val, octave_idx_type& nel)
+  xinit (const octave_int<T>& base, const octave_int<T>& limit,
+         const octave_int<T>& inc, octave_int<T>& final_val,
+         octave_idx_type& nel)
   {
-      // We need an integer division that is truncating decimals instead of
-      // rounding.  So, use underlying C++ types instead of octave_int<T>.
-      // FIXME: The numerator might underflow or overflow. Add checks for that.
-      nel = ((inc == octave_int<T> (0)
-             || (limit > base && inc < octave_int<T> (0))
-             || (limit < base && inc > octave_int<T> (0)))
-            ? 0
-            : (limit.value () - base.value () + inc.value ()) / inc.value ());
+    // We need an integer division that is truncating decimals instead
+    // of rounding.  So, use underlying C++ types instead of
+    // octave_int<T>.
+
+    // FIXME: The numerator might underflow or overflow. Add checks for
+    // that.
 
-      final_val = base + (nel - 1) * inc;
-    }
+    nel = ((inc == octave_int<T> (0)
+            || (limit > base && inc < octave_int<T> (0))
+            || (limit < base && inc > octave_int<T> (0)))
+           ? 0
+           : (limit.value () - base.value () + inc.value ()) / inc.value ());
+
+    final_val = base + (nel - 1) * inc;
+  }
 
   template <typename T>
   bool
@@ -294,70 +299,70 @@
   void
   range<double>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<float>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_int8>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_int16>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_int32>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_int64>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_uint8>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_uint16>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_uint32>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>
   void
   range<octave_uint64>::init (void)
   {
-    return xinit (m_base, m_limit, m_increment, m_final, m_numel);
+    xinit (m_base, m_limit, m_increment, m_final, m_numel);
   }
 
   template <>