Project

General

Profile

Actions

Bug #14036

closed

Signature of rb_uint2big and rb_int2big

Added by Eregon (Benoit Daloze) over 6 years ago. Updated about 6 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:83424]

Description

rb_uint2big and rb_int2big are declared as such:

VALUE rb_uint2big(VALUE);
VALUE rb_int2big(SIGNED_VALUE);

and VALUE is one of

typedef uintptr_t VALUE;
typedef unsigned long VALUE;
typedef unsigned LONG_LONG VALUE;

and SIGNED_VALUE similar but without unsigned.

Should the signatures actually be:

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.


Related issues 1 (0 open1 closed)

Related to Ruby master - Bug #15570: rb_int2big signature change #14036 breaks VIM on 32b archesClosedActions
Actions #1

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

  • Description updated (diff)
Actions #2

Updated by nobu (Nobuyoshi Nakada) about 6 years ago

  • Status changed from Open to Closed

Applied in changeset trunk|r62494.


Signature of rb_uint2big and rb_int2big

  • include/ruby/ruby.h (rb_uint2big, rb_int2big): declare with
    uintptr_t and intptr_t instead of VALUE and SIGNED_VALUE
    respectively. [ruby-core:83424] [Bug #14036]
Actions #3

Updated by vo.x (Vit Ondruch) about 5 years ago

  • Related to Bug #15570: rb_int2big signature change #14036 breaks VIM on 32b arches added
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0