changeset 11414:00214ffa5a29 octave-forge

Avoid calling the base constructor with an argument of []; sanitize constructor in such a way that, when called with a cell array, it test if it's a vector before calling df_name2idx.
author cdemills
date Wed, 23 Jan 2013 22:00:37 +0000
parents 56f9ac1a2380
children 9b0576f4192d
files extra/dataframe/inst/@dataframe/dataframe.m extra/dataframe/inst/@dataframe/permute.m extra/dataframe/inst/@dataframe/private/df_cow.m extra/dataframe/inst/@dataframe/subsref.m
diffstat 4 files changed, 4 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/extra/dataframe/inst/@dataframe/dataframe.m	Wed Jan 23 21:56:25 2013 +0000
+++ b/extra/dataframe/inst/@dataframe/dataframe.m	Wed Jan 23 22:00:37 2013 +0000
@@ -419,7 +419,7 @@
     endif;
 
     if (iscell (x))
-      if (2 == length (x))
+      if (and (isvector (x), 2 == length (x)))
         %# use the intermediate value as destination column
         [indc, ncol] = df_name2idx (df._name{2}, x{1}, df._cnt(2), "column");
         if (ncol ~= 1)
--- a/extra/dataframe/inst/@dataframe/permute.m	Wed Jan 23 21:56:25 2013 +0000
+++ b/extra/dataframe/inst/@dataframe/permute.m	Wed Jan 23 22:00:37 2013 +0000
@@ -24,7 +24,7 @@
   %# $Id$
   %#
 
-  resu = dataframe ([]);
+  resu = dataframe ();
 
   if (length (df._cnt) >= length (perm))
     resu._cnt = df._cnt(perm);
--- a/extra/dataframe/inst/@dataframe/private/df_cow.m	Wed Jan 23 21:56:25 2013 +0000
+++ b/extra/dataframe/inst/@dataframe/private/df_cow.m	Wed Jan 23 22:00:37 2013 +0000
@@ -62,7 +62,6 @@
         %# update repetition index aliasing this one
         df._rep{col}(find (dummy == indi)) = t1;
       endif
-      keyboard
     endfor
   endfor
 
--- a/extra/dataframe/inst/@dataframe/subsref.m	Wed Jan 23 21:56:25 2013 +0000
+++ b/extra/dataframe/inst/@dataframe/subsref.m	Wed Jan 23 22:00:37 2013 +0000
@@ -132,7 +132,7 @@
                     further_deref = true;
                   case "new"
                     if (isempty (dummy))
-                      resu = dataframe([]);
+                      resu = dataframe();
                     else
                       if (~strcmp (dummy(1).type, "()"))
                         error ("Bogus constructor call");
@@ -379,7 +379,7 @@
     if (strcmp (output_type, class (df)))
       %# disp('line 295 '); keyboard
       %# export the result as a dataframe
-      resu = dataframe ([]);
+      resu = dataframe ();
       resu._cnt(1) = nrow; resu._cnt(2) = ncol;
       if (isempty (fullindr))
         for indi = (1:ncol)