Project

General

Profile

Bug #14036

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

`rb_uint2big` rb_uint2big and `rb_int2big` rb_int2big are declared as such: 

 ```c 
 VALUE rb_uint2big(VALUE); 
 VALUE rb_int2big(SIGNED_VALUE); 
 ``` 

 and `VALUE` VALUE is one of 

 ```c 
 typedef uintptr_t VALUE; 
 typedef unsigned long VALUE; 
 typedef unsigned LONG_LONG VALUE; 
 ``` 

 and `SIGNED_VALUE` SIGNED_VALUE similar but without `unsigned`. unsigned. 

 Should the signatures actually be: 

 ```c 
 VALUE rb_uint2big(unsigned long); 
 VALUE rb_int2big(long); 
 ``` 

 Of course, there is not much difference here. 
 But it seems a bit strange to make this kind of conversion functions taking C integers depend on the bitwidth of `VALUE`. VALUE.

Back