diff options
author | Aaron Patterson <[email protected]> | 2022-09-12 09:53:19 -0700 |
---|---|---|
committer | Hiroshi SHIBATA <[email protected]> | 2022-10-07 15:18:49 +0900 |
commit | 48a64984063532f4dedf62e8ac4958a3cf3b556d (patch) | |
tree | 751355eebdde0a0bf77e7697b129d0e6a996c5b6 /ext/fiddle/conversions.c | |
parent | 6d01b66764b6dd3fc61c297bd1ec973f8ea686aa (diff) |
[ruby/fiddle] Add constants for unsigned values (https://github.com/ruby/fiddle/pull/111)
This commit adds constants for unsigned values. Currently we can use `-`
to mean "unsigned", but I think having a specific name makes Fiddle more
user friendly. This commit continues to support `-`, but introduces
negative constants with "unsigned" names
I think this will help to eliminate [this
code](https://github.com/ruby/ruby/blob/3a56bf0bcc66e14ffe5ec89efc32ecfceed180f4/lib/mjit/c_type.rb#L31-L38)
https://github.com/ruby/fiddle/commit/2bef0f1082
Co-authored-by: Sutou Kouhei <[email protected]>
Diffstat (limited to 'ext/fiddle/conversions.c')
-rw-r--r-- | ext/fiddle/conversions.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/ext/fiddle/conversions.c b/ext/fiddle/conversions.c index 6e0ce36378..3b70f7de4c 100644 --- a/ext/fiddle/conversions.c +++ b/ext/fiddle/conversions.c @@ -211,32 +211,32 @@ rb_fiddle_value_to_generic(int type, VALUE *src, fiddle_generic *dst) case TYPE_CHAR: dst->schar = (signed char)NUM2INT(*src); break; - case -TYPE_CHAR: + case TYPE_UCHAR: dst->uchar = (unsigned char)NUM2UINT(*src); break; case TYPE_SHORT: dst->sshort = (unsigned short)NUM2INT(*src); break; - case -TYPE_SHORT: + case TYPE_USHORT: dst->sshort = (signed short)NUM2UINT(*src); break; case TYPE_INT: dst->sint = NUM2INT(*src); break; - case -TYPE_INT: + case TYPE_UINT: dst->uint = NUM2UINT(*src); break; case TYPE_LONG: dst->slong = NUM2LONG(*src); break; - case -TYPE_LONG: + case TYPE_ULONG: dst->ulong = NUM2ULONG(*src); break; #if HAVE_LONG_LONG case TYPE_LONG_LONG: dst->slong_long = NUM2LL(*src); break; - case -TYPE_LONG_LONG: + case TYPE_ULONG_LONG: dst->ulong_long = NUM2ULL(*src); break; #endif @@ -283,24 +283,24 @@ rb_fiddle_generic_to_value(VALUE rettype, fiddle_generic retval) PTR2NUM((void *)retval.pointer)); case TYPE_CHAR: return INT2NUM((signed char)retval.fffi_sarg); - case -TYPE_CHAR: + case TYPE_UCHAR: return INT2NUM((unsigned char)retval.fffi_arg); case TYPE_SHORT: return INT2NUM((signed short)retval.fffi_sarg); - case -TYPE_SHORT: + case TYPE_USHORT: return INT2NUM((unsigned short)retval.fffi_arg); case TYPE_INT: return INT2NUM((signed int)retval.fffi_sarg); - case -TYPE_INT: + case TYPE_UINT: return UINT2NUM((unsigned int)retval.fffi_arg); case TYPE_LONG: return LONG2NUM(retval.slong); - case -TYPE_LONG: + case TYPE_ULONG: return ULONG2NUM(retval.ulong); #if HAVE_LONG_LONG case TYPE_LONG_LONG: return LL2NUM(retval.slong_long); - case -TYPE_LONG_LONG: + case TYPE_ULONG_LONG: return ULL2NUM(retval.ulong_long); #endif case TYPE_FLOAT: |