Return value of rb_define_class (et al.) can't be stored and reused -------------------------------------------------------------------
Key: JRUBY-6085 URL: https://jira.codehaus.org/browse/JRUBY-6085 Project: JRuby Issue Type: Bug Components: C Extensions Affects Versions: JRuby 1.6 Reporter: Mon ouïe Assignee: Thomas E Enebo Priority: Minor In MRI and Rubinius, one can store the return value of rb_define_class (and similar functions) in a global variable and use it for type checks later. #include "ruby.h" #include <stdio.h> VALUE cFoo; VALUE is_foo(VALUE self, VALUE obj) { if (RTEST(rb_obj_is_kind_of(obj, cFoo)) printf("it's a foo!\n"); } void Init_foo() { cFoo = rb_define_class("Foo"); rb_define_singleton_method(cFoo, is_foo, "is_foo?", 1); } In JRuby, though, the VALUE will get invalidated after sometimes (causing some error messages I don't have right now). Users of the C API have to retrieve the constant manually every time to ensure it will work. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email