1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/ext/psych/psych_to_ruby.c
hsbt 48e251df47 Update psych-2.2.1
It fixed segmentation fault related with GC.
  https://github.com/ruby/psych/pull/296

  and removed deprecated code of Ruby 1.8.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2016-11-30 13:55:02 +00:00

39 lines
1 KiB
C

#include <psych.h>
VALUE cPsychVisitorsToRuby;
/* call-seq: vis.build_exception(klass, message)
*
* Create an exception with class +klass+ and +message+
*/
static VALUE build_exception(VALUE self, VALUE klass, VALUE mesg)
{
VALUE e = rb_obj_alloc(klass);
rb_iv_set(e, "mesg", mesg);
return e;
}
/* call-seq: vis.path2class(path)
*
* Convert +path+ string to a class
*/
static VALUE path2class(VALUE self, VALUE path)
{
return rb_path_to_class(path);
}
void Init_psych_to_ruby(void)
{
VALUE psych = rb_define_module("Psych");
VALUE class_loader = rb_define_class_under(psych, "ClassLoader", rb_cObject);
VALUE visitors = rb_define_module_under(psych, "Visitors");
VALUE visitor = rb_define_class_under(visitors, "Visitor", rb_cObject);
cPsychVisitorsToRuby = rb_define_class_under(visitors, "ToRuby", visitor);
rb_define_private_method(cPsychVisitorsToRuby, "build_exception", build_exception, 2);
rb_define_private_method(class_loader, "path2class", path2class, 1);
}
/* vim: set noet sws=4 sw=4: */