From 226b59c58ef93a47d5559bfd35d824dfbfbc3044 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Sun, 15 Mar 2020 14:39:31 +0900 Subject: [PATCH] Convert nil int/float arguments to 0 Some games pass nil as bgs/bgm play pos arg :/ --- binding-mri/binding-util.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/binding-mri/binding-util.h b/binding-mri/binding-util.h index 1b758be..3b15935 100644 --- a/binding-mri/binding-util.h +++ b/binding-mri/binding-util.h @@ -227,8 +227,12 @@ rb_float_arg(VALUE arg, double *out, int argPos = 0) *out = FIX2INT(arg); break; + case RUBY_T_NIL : + *out = 0; + break; + default: - rb_raise(rb_eTypeError, "Argument %d: Expected float", argPos); + rb_raise(rb_eTypeError, "Argument %d: Expected float (got 0x%x)", argPos, rb_type(arg)); } } @@ -246,8 +250,12 @@ rb_int_arg(VALUE arg, int *out, int argPos = 0) *out = FIX2INT(arg); break; + case RUBY_T_NIL : + *out = 0; + break; + default: - rb_raise(rb_eTypeError, "Argument %d: Expected fixnum", argPos); + rb_raise(rb_eTypeError, "Argument %d: Expected fixnum (got 0x%x)", argPos, rb_type(arg)); } } -- 2.43.0