diff src/mex.cc @ 12331:f39436e14734

mex.cc (mxArray_octave_value::dup): if value can't be converted to mxArray object, create a clone of the mxArray_octave_value container
author John W. Eaton <jwe@octave.org>
date Thu, 03 Feb 2011 01:40:00 -0500
parents 9ea6f69259d7
children c40528d06c92
line wrap: on
line diff
--- a/src/mex.cc	Thu Feb 03 01:04:41 2011 -0500
+++ b/src/mex.cc	Thu Feb 03 01:40:00 2011 -0500
@@ -327,7 +327,13 @@
     : mxArray_base (), val (ov), mutate_flag (false),
       id (mxUNKNOWN_CLASS), class_name (0), ndims (-1), dims (0) { }
 
-  mxArray *dup (void) const { return val.as_mxArray (); }
+  mxArray *dup (void) const
+  {
+    mxArray *retval = val.as_mxArray ();
+
+    if (! retval)
+      retval = new mxArray_octave_value (*this);
+  }
 
   ~mxArray_octave_value (void)
   {