--0-1892102339-12123685060902
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Hi,
I started writing my own extension for Ruby in C and I encounteredhat may be a bug with NUM2INT.
I just wanted to convert a Ruby VALUEo a C Int. The problem is that I don't get the same value whether I use NUM2INT, rb_num2int or NUM2LONG.
For instance:
static VALUE rb_video_stream_new(VALUE self, VALUE vindex) {
long index = NUM2INT(vindex);
printf("vindex %d, index %d\n", vindex, index);
long index2 = rb_num2int(vindex);
printf("vindex %d, index %d\n", vindex, index2);
long index3 = NUM2LONG(vindex);
printf("vindex %d, index %d\n", vindex, index3);
return Qnil;
}
void Init_video_stream(VALUE dae_mod) {
VALUE video_stream_class = rb_define_class_under(dae_mod,Testo", rb_cObject);
rb_define_singleton_method(video_stream_class, "new", rb_video_stream_new, 1);
}
In ruby, Testo.new(100) will print:
vindex 201, index 101
vindex 201, index 100
vindex 201, index 101
I use Ruby 1.8.6 (114), the last one in Gentoo. See attached file for the source code.
Maybe this problem is resolved in 1.8.7?
Regards,
Sylvain
__________________________________________________
Do You Yahoo!?
En finir avec le spam? Yahoo! Mail vous offre la meilleure protection possible contre les messages non sollicités
http://mail.yahoo.fr Yahoo! Mail
--0-1892102339-12123685060902
Content-Type: application/x-gtar; name="bug_num2int.tgz"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="bug_num2int.tgz"
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
goKCwvfH/wBn5r1+AFAAAA
--0-1892102339-12123685060902--