comparison libinterp/corefcn/cellfun.cc @ 20619:eef93a493ce3

use new cell_value method to handle value extraction errors * cellfun.cc, ov-class.cc, ov-struct.cc, ov-usr-fcn.cc: Use new cell_value method.
author John W. Eaton <jwe@octave.org>
date Fri, 09 Oct 2015 14:43:36 -0400
parents 56fee8f84fe7
children
comparison
equal deleted inserted replaced
20618:e5986cba4ca8 20619:eef93a493ce3
2461 { 2461 {
2462 octave_value retval; 2462 octave_value retval;
2463 2463
2464 if (args.length () >= 1) 2464 if (args.length () >= 1)
2465 { 2465 {
2466 if (args(0).is_cell ()) 2466 const Cell x = args(0).cell_value ("cellindexmat: X must be a cell");
2467 { 2467 NoAlias<Cell> y(x.dims ());
2468 const Cell x = args(0).cell_value (); 2468 octave_idx_type nel = x.numel ();
2469 NoAlias<Cell> y(x.dims ()); 2469 octave_value_list idx = args.slice (1, args.length () - 1);
2470 octave_idx_type nel = x.numel (); 2470
2471 octave_value_list idx = args.slice (1, args.length () - 1); 2471 for (octave_idx_type i = 0; i < nel; i++)
2472 2472 {
2473 for (octave_idx_type i = 0; i < nel; i++) 2473 octave_quit ();
2474 { 2474
2475 octave_quit (); 2475 octave_value tmp = x(i);
2476 2476
2477 octave_value tmp = x(i); 2477 y(i) = tmp.do_index_op (idx);
2478 2478 }
2479 y(i) = tmp.do_index_op (idx); 2479
2480 } 2480 retval = y;
2481
2482 retval = y;
2483 }
2484 else
2485 error ("cellindexmat: X must be a cell");
2486 } 2481 }
2487 else 2482 else
2488 print_usage (); 2483 print_usage ();
2489 2484
2490 return retval; 2485 return retval;