Mercurial > octave-nkf
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; |