Mercurial > hg > octave-lyh
diff src/pt-arg-list.cc @ 8580:188d38a553c7
further indexing optimization touches
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 23 Jan 2009 13:13:39 +0100 |
parents | 7d1a8ad7d841 |
children | 73c4516fae10 |
line wrap: on
line diff
--- a/src/pt-arg-list.cc +++ b/src/pt-arg-list.cc @@ -174,12 +174,9 @@ int len = length (); - octave_value_list args; - int args_len = len; - args.resize (args_len); + std::list<octave_value_list> args; iterator p = begin (); - int j = 0; for (int k = 0; k < len; k++) { if (stash_object) @@ -200,33 +197,24 @@ if (error_state) { ::error ("evaluating argument list element number %d", k+1); - args = octave_value_list (); + args.clear (); break; } else { if (tmp.is_cs_list ()) - { - octave_value_list tl = tmp.list_value (); - int n = tl.length (); - args_len += n - 1; - args.resize (args_len); - for (int i = 0; i < n; i++) - args(j++) = tl(i); - } + args.push_back (tmp.list_value ()); else if (tmp.is_defined ()) - args(j++) = tmp; + args.push_back (tmp); } } else { - args(j++) = octave_value (); + args.push_back (octave_value ()); break; } } - args.resize (j); - if (stash_object) unwind_protect::run_frame ("convert_to_const_vector");