mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	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
		
			
				
	
	
		
			39 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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: */
 |