diff src/ov-base-scalar.cc @ 10670:654fbde5dceb

make cellfun's fast scalar collection mechanism public
author Jaroslav Hajek <highegg@gmail.com>
date Fri, 28 May 2010 12:28:06 +0200
parents ffe28cdc6fe2
children 7fa044155982
line wrap: on
line diff
--- a/src/ov-base-scalar.cc	Thu May 27 20:12:51 2010 -0700
+++ b/src/ov-base-scalar.cc	Fri May 28 12:28:06 2010 +0200
@@ -154,3 +154,18 @@
   os << name << " = ";
   return false;    
 }
+
+template <class ST>
+bool
+octave_base_scalar<ST>::fast_elem_insert_self (void *where, builtin_type_t btyp) const
+{
+
+  // Don't use builtin_type () here to avoid an extra VM call.
+  if (btyp == class_to_btyp<ST>::btyp)
+    {
+      *(reinterpret_cast<ST *>(where)) = scalar;
+      return true;
+    }
+  else
+    return false;
+}