summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLamont Granquist <lamont@scriptkiddie.org>2014-11-22 14:34:12 -0800
committerLamont Granquist <lamont@scriptkiddie.org>2014-11-22 14:34:12 -0800
commit702720c2cc1a11314a4046819ab763f759c37a6b (patch)
treef3bf751b368180004322b3a4377132eb951333ef /lib
parent981b65b2244b82439c1f923a021badccebac77d1 (diff)
downloadffi-yajl-702720c2cc1a11314a4046819ab763f759c37a6b.tar.gz
fix bare object parsing
closes #2 and #16
Diffstat (limited to 'lib')
-rw-r--r--lib/ffi_yajl/ffi/parser.rb7
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
-