- #ifndef RBIGNUM_SIGN // Ruby 1.8
- #define RBIGNUM_SIGN(b) (RBIGNUM(b)->sign)
- #endif
- static VALUE MessagePack_Bignum_to_msgpack(int argc, VALUE *argv, VALUE self)
- {
- ARG_BUFFER(out, argc, argv);
- // FIXME bignum
- if(RBIGNUM_SIGN(self)) { // positive
- msgpack_pack_uint64(out, rb_big2ull(self));
- } else { // negative
- msgpack_pack_int64(out, rb_big2ll(self));
- }
- return out;
- }