nilを渡してもtrueになってしまう現象を修正
@@ -547,15 +547,16 @@ | ||
547 | 547 | ---------------------------------------------------------------------*/ |
548 | 548 | static VALUE Image_loadToArray( int argc, VALUE *argv, VALUE klass ) |
549 | 549 | { |
550 | - VALUE vfilename, vx, vy, vswitch; | |
550 | +// VALUE vfilename, vx, vy, vswitch; | |
551 | 551 | VALUE vimage, ary[3]; |
552 | 552 | |
553 | - rb_scan_args( argc, argv, "31", &vfilename, &vx, &vy, &vswitch ); | |
553 | + if( argc < 3 || argc > 4 ) rb_raise( rb_eArgError, "wrong number of arguments (%d for %d..%d)", argc, 3, 4 ); | |
554 | +// rb_scan_args( argc, argv, "31", &vfilename, &vx, &vy, &vswitch ); | |
554 | 555 | |
555 | - vimage = Image_load( 1, &vfilename, cImage ); | |
556 | - ary[0] = vx; | |
557 | - ary[1] = vy; | |
558 | - ary[2] = vswitch; | |
556 | + vimage = Image_load( 1, &argv[0], cImage ); | |
557 | + ary[0] = argv[1]; | |
558 | + ary[1] = argv[2]; | |
559 | + ary[2] = argc < 4 ? Qtrue : argv[3]; | |
559 | 560 | return Image_sliceToArray( 3, ary, vimage ); |
560 | 561 | } |
561 | 562 |
@@ -800,12 +801,13 @@ | ||
800 | 801 | HRESULT hr; |
801 | 802 | int x, y, i, j; |
802 | 803 | VALUE array, obj; |
803 | - VALUE vx, vy, vswitch; | |
804 | +// VALUE vx, vy, vswitch; | |
804 | 805 | |
805 | - rb_scan_args( argc, argv, "21", &vx, &vy, &vswitch ); | |
806 | + if( argc < 2 || argc > 3 ) rb_raise( rb_eArgError, "wrong number of arguments (%d for %d..%d)", argc, 2, 3 ); | |
807 | +// rb_scan_args( argc, argv, "21", &vx, &vy, &vswitch ); | |
806 | 808 | |
807 | - x = NUM2INT( vx ); | |
808 | - y = NUM2INT( vy ); | |
809 | + x = NUM2INT( argv[0] ); | |
810 | + y = NUM2INT( argv[1] ); | |
809 | 811 | |
810 | 812 | if( x <= 0 || y <= 0 ) rb_raise( eDXRubyError, "画像の数指定が異常値です(x=%d,y=%d) - Image_sliceToArray", x, y ); |
811 | 813 |
@@ -826,7 +828,7 @@ | ||
826 | 828 | /* Ruby配列作成 */ |
827 | 829 | array = rb_ary_new(); |
828 | 830 | |
829 | - if( RTEST(vswitch) || vswitch == Qnil ) | |
831 | + if( argc < 3 || RTEST(argv[2]) ) | |
830 | 832 | { |
831 | 833 | for( i = 0; i < y; i++ ) |
832 | 834 | { |