Skip to content

Commit 368035b

Browse files
authored
Merge pull request #8 from palkan/feat/mruby3
mruby 3.0 compatibility
2 parents 9df3c4a + 2d908b1 commit 368035b

File tree

1 file changed

+14
-9
lines changed

1 file changed

+14
-9
lines changed

src/mrb_msgpack.c

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ mrb_msgpack_data_write(void* data, const char* buf, size_t len)
3939
}
4040
}
4141

42-
#define pack_fixnum_helper_(x, pk, self) msgpack_pack_int##x(pk, mrb_fixnum(self))
43-
#define pack_fixnum_helper(x, pk, self) pack_fixnum_helper_(x, pk, self)
44-
#define mrb_msgpack_pack_int(pk, self) pack_fixnum_helper(MRB_INT_BIT, pk, self)
42+
#define pack_integer_helper_(x, pk, self) msgpack_pack_int##x(pk, mrb_fixnum(self))
43+
#define pack_integer_helper(x, pk, self) pack_integer_helper_(x, pk, self)
44+
#define mrb_msgpack_pack_int(pk, self) pack_integer_helper(MRB_INT_BIT, pk, self)
4545

4646
MRB_INLINE void
47-
mrb_msgpack_pack_fixnum_value(mrb_state *mrb, mrb_value self, msgpack_packer* pk)
47+
mrb_msgpack_pack_integer_value(mrb_state *mrb, mrb_value self, msgpack_packer* pk)
4848
{
4949
int rc = mrb_msgpack_pack_int(pk, self);
5050
if (unlikely(rc < 0)) {
@@ -188,7 +188,7 @@ mrb_msgpack_pack_value(mrb_state* mrb, mrb_value self, msgpack_packer* pk)
188188
rc = msgpack_pack_true(pk);
189189
break;
190190
case MRB_TT_FIXNUM:
191-
mrb_msgpack_pack_fixnum_value(mrb, self, pk);
191+
mrb_msgpack_pack_integer_value(mrb, self, pk);
192192
break;
193193
#ifndef MRB_WITHOUT_FLOAT
194194
case MRB_TT_FLOAT:
@@ -217,7 +217,7 @@ mrb_msgpack_pack_value(mrb_state* mrb, mrb_value self, msgpack_packer* pk)
217217
} else {
218218
try_convert = mrb_check_convert_type(mrb, self, MRB_TT_FIXNUM, "Fixnum", "to_int");
219219
if (mrb_fixnum_p(try_convert)) {
220-
mrb_msgpack_pack_fixnum_value(mrb, try_convert, pk);
220+
mrb_msgpack_pack_integer_value(mrb, try_convert, pk);
221221
} else {
222222
try_convert = mrb_check_convert_type(mrb, self, MRB_TT_STRING, "String", "to_str");
223223
if (mrb_string_p(try_convert)) {
@@ -340,15 +340,15 @@ mrb_msgpack_pack_float(mrb_state* mrb, mrb_value self)
340340
#endif
341341

342342
static mrb_value
343-
mrb_msgpack_pack_fixnum(mrb_state* mrb, mrb_value self)
343+
mrb_msgpack_pack_integer(mrb_state* mrb, mrb_value self)
344344
{
345345
msgpack_packer pk;
346346
mrb_msgpack_data data;
347347
data.mrb = mrb;
348348
data.buffer = mrb_str_new(mrb, NULL, 0);
349349
msgpack_packer_init(&pk, &data, mrb_msgpack_data_write);
350350

351-
mrb_msgpack_pack_fixnum_value(mrb, self, &pk);
351+
mrb_msgpack_pack_integer_value(mrb, self, &pk);
352352

353353
return data.buffer;
354354
}
@@ -781,7 +781,12 @@ mrb_mruby_simplemsgpack_gem_init(mrb_state* mrb)
781781
#ifndef MRB_WITHOUT_FLOAT
782782
mrb_define_method(mrb, mrb->float_class, "to_msgpack", mrb_msgpack_pack_float, MRB_ARGS_NONE());
783783
#endif
784-
mrb_define_method(mrb, mrb->fixnum_class, "to_msgpack", mrb_msgpack_pack_fixnum, MRB_ARGS_NONE());
784+
785+
#if (MRUBY_RELEASE_MAJOR < 3)
786+
mrb_define_method(mrb, mrb->fixnum_class, "to_msgpack", mrb_msgpack_pack_integer, MRB_ARGS_NONE());
787+
#else
788+
mrb_define_method(mrb, mrb->integer_class, "to_msgpack", mrb_msgpack_pack_integer, MRB_ARGS_NONE());
789+
#endif
785790
mrb_define_method(mrb, mrb->true_class, "to_msgpack", mrb_msgpack_pack_true, MRB_ARGS_NONE());
786791
mrb_define_method(mrb, mrb->false_class, "to_msgpack", mrb_msgpack_pack_false, MRB_ARGS_NONE());
787792
mrb_define_method(mrb, mrb->nil_class, "to_msgpack", mrb_msgpack_pack_nil, MRB_ARGS_NONE());

0 commit comments

Comments
 (0)