summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-07-09 13:12:11 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2015-07-09 13:12:11 -0700
commitd6e5fa74de5b13abc6c60a95b83acc8eb8d3ed05 (patch)
treeef0508bd94935cdb1fdab620affe57fb01e32cfa
parent8563dd4bb03a12bc41a7bf9b3e1ab4865a2a0110 (diff)
parentaa041ef3b65f2f0c01f3be5d1b5bc7f9a631759d (diff)
downloadffi-yajl-d6e5fa74de5b13abc6c60a95b83acc8eb8d3ed05.tar.gz
Merge pull request #67 from chef/lcg/fix-superclass-in-ext
fix superclass mismatch on rbx in c ext
-rw-r--r--.travis.yml2
-rw-r--r--ext/ffi_yajl/ext/encoder/encoder.c13
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);