changeset 10475:739109ef88ee

helper idx_vector methods
author Jaroslav Hajek <highegg@gmail.com>
date Mon, 29 Mar 2010 14:08:30 +0200
parents b2143d97c002
children f261f936bf36
files liboctave/ChangeLog liboctave/idx-vector.cc liboctave/idx-vector.h
diffstat 3 files changed, 20 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/liboctave/ChangeLog	Sun Mar 28 19:07:48 2010 +0200
+++ b/liboctave/ChangeLog	Mon Mar 29 14:08:30 2010 +0200
@@ -1,3 +1,8 @@
+2010-03-29  Jaroslav Hajek  <highegg@gmail.com>
+
+	* idx-vector.cc (idx_vector::raw): New method.
+	* idx-vector.h: Declare it.
+
 2010-03-27  David Bateman  <dbateman@free.fr>
 
 	* oct-openmp.h: New file.
--- a/liboctave/idx-vector.cc	Sun Mar 28 19:07:48 2010 +0200
+++ b/liboctave/idx-vector.cc	Mon Mar 29 14:08:30 2010 +0200
@@ -990,6 +990,17 @@
   return retval;
 }
 
+const octave_idx_type *
+idx_vector::raw (void)
+{
+  if (rep->idx_class () != class_vector)
+    *this = as_array ();
+
+  idx_vector_rep * r = dynamic_cast<idx_vector_rep *> (rep);
+  assert (r != 0);
+  return r->get_data ();
+}
+
 void
 idx_vector::copy_data (octave_idx_type *data) const
 {
--- a/liboctave/idx-vector.h	Sun Mar 28 19:07:48 2010 +0200
+++ b/liboctave/idx-vector.h	Mon Mar 29 14:08:30 2010 +0200
@@ -982,6 +982,10 @@
                   Array<double>& array, Array<bool>& mask) const;
 
   Array<octave_idx_type> as_array (void) const;
+
+  // Raw pointer to index array.  This is non-const because it may be necessary
+  // to mutate the index.
+  const octave_idx_type *raw (void);
     
   // FIXME -- these are here for compatibility.  They should be removed
   // when no longer in use.