summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-05-23 01:34:45 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-05-23 01:34:45 +0900
commit5982970e21d9bab7ea2bd507b360317f40628260 (patch)
treec649b237999574a4ab139ac6dfdf2d75484a1ada /java/src
parentc43e5e0c95105c0dbf17e41d15068bfdb08450ce (diff)
downloadmsgpack-python-5982970e21d9bab7ea2bd507b360317f40628260.tar.gz
java: fixed problem that empty array and empty map don't check Schema
Diffstat (limited to 'java/src')
-rw-r--r--java/src/main/java/org/msgpack/UnpackerImpl.java10
1 files changed, 8 insertions, 2 deletions
diff --git a/java/src/main/java/org/msgpack/UnpackerImpl.java b/java/src/main/java/org/msgpack/UnpackerImpl.java
index ae01289..9b885a0 100644
--- a/java/src/main/java/org/msgpack/UnpackerImpl.java
+++ b/java/src/main/java/org/msgpack/UnpackerImpl.java
@@ -157,7 +157,10 @@ public class UnpackerImpl {
count = b & 0x0f;
//System.out.println("fixarray count:"+count);
obj = new Object[count];
- if(count == 0) { break _push; } // FIXME check IArraySchema
+ if(count == 0) {
+ obj = ((IArraySchema)top_schema).createFromArray((Object[])obj);
+ break _push;
+ }
++top;
stack_obj[top] = top_obj;
stack_ct[top] = top_ct;
@@ -179,7 +182,10 @@ public class UnpackerImpl {
}
count = b & 0x0f;
obj = new Object[count*2];
- if(count == 0) { break _push; } // FIXME check IMapSchema
+ if(count == 0) {
+ obj = ((IMapSchema)top_schema).createFromMap((Object[])obj);
+ break _push;
+ }
//System.out.println("fixmap count:"+count);
++top;
stack_obj[top] = top_obj;