diff --git a/java/src/json/ext/Generator.java b/java/src/json/ext/Generator.java index 96a5e7e4..fe8fd40a 100644 --- a/java/src/json/ext/Generator.java +++ b/java/src/json/ext/Generator.java @@ -7,12 +7,11 @@ import org.jruby.Ruby; import org.jruby.RubyArray; -import org.jruby.RubyBignum; import org.jruby.RubyBoolean; import org.jruby.RubyClass; -import org.jruby.RubyFixnum; import org.jruby.RubyFloat; import org.jruby.RubyHash; +import org.jruby.RubyInteger; import org.jruby.RubyNumeric; import org.jruby.RubyString; import org.jruby.runtime.ThreadContext; @@ -66,15 +65,14 @@ private Generator() { private static Handler getHandlerFor(Ruby runtime, T object) { RubyClass metaClass = object.getMetaClass(); - if (metaClass == runtime.getString()) return (Handler)STRING_HANDLER; - if (metaClass == runtime.getFixnum()) return (Handler)FIXNUM_HANDLER; - if (metaClass == runtime.getHash()) return (Handler)HASH_HANDLER; - if (metaClass == runtime.getArray()) return (Handler)ARRAY_HANDLER; - if (object.isNil()) return (Handler)NIL_HANDLER; - if (object == runtime.getTrue()) return (Handler)TRUE_HANDLER; - if (object == runtime.getFalse()) return (Handler)FALSE_HANDLER; - if (metaClass == runtime.getFloat()) return (Handler)FLOAT_HANDLER; - if (metaClass == runtime.getBignum()) return (Handler)BIGNUM_HANDLER; + if (metaClass == runtime.getString()) return (Handler)STRING_HANDLER; + if (metaClass == runtime.getInteger()) return (Handler)INTEGER_HANDLER; + if (metaClass == runtime.getHash()) return (Handler)HASH_HANDLER; + if (metaClass == runtime.getArray()) return (Handler)ARRAY_HANDLER; + if (object.isNil()) return (Handler)NIL_HANDLER; + if (object == runtime.getTrue()) return (Handler)TRUE_HANDLER; + if (object == runtime.getFalse()) return (Handler)FALSE_HANDLER; + if (metaClass == runtime.getFloat()) return (Handler)FLOAT_HANDLER; return GENERIC_HANDLER; } @@ -208,22 +206,10 @@ void generate(Session session, T object, ByteList buffer) { /* Handlers */ - - static final Handler BIGNUM_HANDLER = - new Handler() { - @Override - void generate(Session session, RubyBignum object, ByteList buffer) { - // JRUBY-4751: RubyBignum.to_s() returns generic object - // representation (fixed in 1.5, but we maintain backwards - // compatibility; call to_s(IRubyObject[]) then - buffer.append(((RubyString)object.to_s(IRubyObject.NULL_ARRAY)).getByteList()); - } - }; - - static final Handler FIXNUM_HANDLER = - new Handler() { + static final Handler INTEGER_HANDLER = + new Handler() { @Override - void generate(Session session, RubyFixnum object, ByteList buffer) { + void generate(Session session, RubyInteger object, ByteList buffer) { buffer.append(object.to_s().getByteList()); } };