diff options
-rw-r--r-- | .travis.yml | 2 | ||||
-rw-r--r-- | ext/ffi_yajl/ext/encoder/encoder.c | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/.travis.yml b/.travis.yml index e659646..0a552ff 100644 --- a/.travis.yml +++ b/.travis.yml @@ -30,8 +30,6 @@ matrix: jdk: oraclejdk7 - rvm: jruby-head jdk: openjdk7 - - rvm: rbx - jdk: oraclejdk7 exclude: - rvm: 2.2 jdk: openjdk6 diff --git a/ext/ffi_yajl/ext/encoder/encoder.c b/ext/ffi_yajl/ext/encoder/encoder.c index 49bd9ed..92f64a9 100644 --- a/ext/ffi_yajl/ext/encoder/encoder.c +++ b/ext/ffi_yajl/ext/encoder/encoder.c @@ -362,10 +362,15 @@ void Init_encoder() { cYajl_Gen = rb_define_class_under(mEncoder, "YajlGen", rb_cObject); rb_define_method(mEncoder, "do_yajl_encode", mEncoder_do_yajl_encode, 3); - cDate = rb_define_class("Date", rb_cObject); - cTime = rb_define_class("Time", rb_cObject); - cDateTime = rb_define_class("DateTime", cDate); - cStringIO = rb_define_class("StringIO", rb_cData); + /* use rb_const_get instead of rb_define_class so that we don't get superclass mismatches */ + ID sym_Date = rb_intern("Date"); + cDate = rb_const_get(rb_cObject, sym_Date); + ID sym_Time = rb_intern("Time"); + cTime = rb_const_get(rb_cObject, sym_Time); + ID sym_DateTime = rb_intern("DateTime"); + cDateTime = rb_const_get(rb_cObject, sym_DateTime); + ID sym_StringIO = rb_intern("StringIO"); + cStringIO = rb_const_get(rb_cObject, sym_StringIO); rb_define_method(rb_cHash, "ffi_yajl", rb_cHash_ffi_yajl, 2); rb_define_method(rb_cArray, "ffi_yajl", rb_cArray_ffi_yajl, 2); |