diff options
author | Naoki INADA <inada-n@eagle> | 2009-06-24 01:13:39 +0900 |
---|---|---|
committer | Naoki INADA <inada-n@eagle> | 2009-06-24 01:13:39 +0900 |
commit | dd53b141ef6d2495d0cc14c8949180a74ae3caf6 (patch) | |
tree | 01cbb51bef3248f26db310d2a101c812cbaefa12 /python/msgpack/unpack.h | |
parent | 99d0a41ec6a6169456dcfe64cd6972520a768b71 (diff) | |
download | msgpack-python-dd53b141ef6d2495d0cc14c8949180a74ae3caf6.tar.gz |
Remove unneccessary value.
Diffstat (limited to 'python/msgpack/unpack.h')
-rw-r--r-- | python/msgpack/unpack.h | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/python/msgpack/unpack.h b/python/msgpack/unpack.h index b753493..12702d8 100644 --- a/python/msgpack/unpack.h +++ b/python/msgpack/unpack.h @@ -25,14 +25,8 @@ using namespace std; -struct array_context { - unsigned int size; - unsigned int last; - array_context(unsigned int size) : size(size), last(0) - {} -}; struct unpack_user { - stack<array_context> array_stack; + stack<unsigned int> array_stack; map<string, PyObject*> str_cache; ~unpack_user() { @@ -116,7 +110,7 @@ static inline int template_callback_false(unpack_user* u, msgpack_unpack_object* static inline int template_callback_array(unpack_user* u, unsigned int n, msgpack_unpack_object* o) { if (n > 0) { - u->array_stack.push(array_context(n)); + u->array_stack.push(0); *o = PyList_New(n); } else { @@ -127,12 +121,12 @@ static inline int template_callback_array(unpack_user* u, unsigned int n, msgpac static inline int template_callback_array_item(unpack_user* u, msgpack_unpack_object* c, msgpack_unpack_object o) { - unsigned int n = u->array_stack.top().size; - unsigned int &last = u->array_stack.top().last; - - PyList_SetItem(*c, last, o); + unsigned int &last = u->array_stack.top(); + PyList_SET_ITEM(*c, last, o); last++; - if (last >= n) { + + Py_ssize_t len = PyList_GET_SIZE(*c); + if (last >= len) { u->array_stack.pop(); } return 0; |