VALUE MessagePack_Packer_alloc(VALUE klass) { msgpack_packer_t* pk = ALLOC_N(msgpack_packer_t, 1); msgpack_packer_init(pk); VALUE self = Data_Wrap_Struct(klass, Packer_mark, Packer_free, pk); msgpack_packer_set_to_msgpack_method(pk, s_to_msgpack, self); msgpack_packer_ext_registry_init(&pk->ext_registry); pk->buffer_ref = MessagePack_Buffer_wrap(PACKER_BUFFER_(pk), self); return self; }
static VALUE Factory_initialize(int argc, VALUE* argv, VALUE self) { FACTORY(self, fc); msgpack_packer_ext_registry_init(&fc->pkrg); msgpack_unpacker_ext_registry_init(&fc->ukrg); fc->has_symbol_ext_type = false; switch (argc) { case 0: break; default: // TODO options is not supported yet rb_raise(rb_eArgError, "wrong number of arguments (%d for 0)", argc); } return Qnil; }