summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2015-07-09 11:24:26 -0700
committerLamont Granquist <lamont@scriptkiddie.org>2015-07-09 11:24:26 -0700
commit7173e39c203d31241ad90ce8606f46605afc8ea9 (patch)
treea30914d6d434d431a7665abb5a84e317b4c3da64 /ext
parent4b8b7dc9bbe907775d1e2250c3dcfc93b20764d0 (diff)
downloadffi-yajl-7173e39c203d31241ad90ce8606f46605afc8ea9.tar.gz
fix other possible superclass mismatches
Diffstat (limited to 'ext')
-rw-r--r--ext/ffi_yajl/ext/encoder/encoder.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/ext/ffi_yajl/ext/encoder/encoder.c b/ext/ffi_yajl/ext/encoder/encoder.c
index 39a5ce7..92f64a9 100644
--- a/ext/ffi_yajl/ext/encoder/encoder.c
+++ b/ext/ffi_yajl/ext/encoder/encoder.c
@@ -362,10 +362,13 @@ 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);
-
+ /* 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);