diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2013-12-13 16:58:22 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2013-12-13 16:58:22 -0800 |
commit | ea5d89e3f5998f2664f3a9498274691d4b7165df (patch) | |
tree | 75cca3279b51e342d863d199427f33eb89835cd0 /lib/ffi_yajl/ffi | |
parent | d152d4826c802a9558c1c336d70bcfd6b5827634 (diff) | |
download | ffi-yajl-ea5d89e3f5998f2664f3a9498274691d4b7165df.tar.gz |
fix precision issue by using yajl_gen_number
yajl_gen_double disagrees with ruby's Float#to_s in incompatible ways
Diffstat (limited to 'lib/ffi_yajl/ffi')
-rw-r--r-- | lib/ffi_yajl/ffi/encoder.rb | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/ffi_yajl/ffi/encoder.rb b/lib/ffi_yajl/ffi/encoder.rb index 050c7e9..3a27d3c 100644 --- a/lib/ffi_yajl/ffi/encoder.rb +++ b/lib/ffi_yajl/ffi/encoder.rb @@ -128,7 +128,8 @@ end class Float def ffi_yajl(yajl_gen, state) - if ( status = FFI_Yajl.yajl_gen_double(yajl_gen, self) ) != 0 + str = self.to_s + if ( status = FFI_Yajl.yajl_gen_number(yajl_gen, str, str.bytesize) ) != 0 FFI_Yajl::Encoder.raise_error_for_status(status) end end |