diff options
author | Lamont Granquist <lamont@scriptkiddie.org> | 2014-11-22 14:34:12 -0800 |
---|---|---|
committer | Lamont Granquist <lamont@scriptkiddie.org> | 2014-11-22 14:34:12 -0800 |
commit | 702720c2cc1a11314a4046819ab763f759c37a6b (patch) | |
tree | f3bf751b368180004322b3a4377132eb951333ef /lib | |
parent | 981b65b2244b82439c1f923a021badccebac77d1 (diff) | |
download | ffi-yajl-702720c2cc1a11314a4046819ab763f759c37a6b.tar.gz |
fix bare object parsing
closes #2 and #16
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ffi_yajl/ffi/parser.rb | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/lib/ffi_yajl/ffi/parser.rb b/lib/ffi_yajl/ffi/parser.rb index 11682dc..7dfc26c 100644 --- a/lib/ffi_yajl/ffi/parser.rb +++ b/lib/ffi_yajl/ffi/parser.rb @@ -13,15 +13,13 @@ module FFI_Yajl when Array stack.last.push(val) else - raise FFI_Yajl::ParseError.new("internal error: object not a hash or array") + stack.push(val) end end def stack_pop if stack.length > 1 set_value( stack.pop ) - else - @finished = stack.pop end end @@ -138,11 +136,10 @@ module FFI_Yajl error = ::FFI_Yajl.yajl_get_error(yajl_handle, 1, str, str.bytesize) raise ::FFI_Yajl::ParseError.new(error) end - finished + stack.pop ensure ::FFI_Yajl.yajl_free(yajl_handle) if yajl_handle end end end end - |