diff options
author | INADA Naoki <songofacandy@gmail.com> | 2012-03-08 16:59:56 +0900 |
---|---|---|
committer | INADA Naoki <songofacandy@gmail.com> | 2012-03-08 16:59:56 +0900 |
commit | 91a1abb737ecdcc88392355a6d157be5d9040477 (patch) | |
tree | fa25d7a6444f9d4783102720c9aa443ec5426e7a | |
parent | 64bdf6bcd633b4404cb5413f37a1c7ae428f048c (diff) | |
parent | 02f01f60fcbf2753d36b79500334d9b2379f25b4 (diff) | |
download | msgpack-python-91a1abb737ecdcc88392355a6d157be5d9040477.tar.gz |
Merge branch 'master' of github.com:msgpack/msgpack-python
-rw-r--r-- | msgpack/unpack.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/msgpack/unpack.h b/msgpack/unpack.h index 0586ca8..2659a97 100644 --- a/msgpack/unpack.h +++ b/msgpack/unpack.h @@ -161,8 +161,10 @@ static inline int template_callback_array_end(unpack_user* u, msgpack_unpack_obj { if (u->list_hook) { PyObject *arglist = Py_BuildValue("(O)", *c); - *c = PyEval_CallObject(u->list_hook, arglist); + PyObject *new_c = PyEval_CallObject(u->list_hook, arglist); Py_DECREF(arglist); + Py_DECREF(*c); + *c = new_c; } return 0; } @@ -190,8 +192,10 @@ static inline int template_callback_map_end(unpack_user* u, msgpack_unpack_objec { if (u->object_hook) { PyObject *arglist = Py_BuildValue("(O)", *c); - *c = PyEval_CallObject(u->object_hook, arglist); + PyObject *new_c = PyEval_CallObject(u->object_hook, arglist); Py_DECREF(arglist); + Py_DECREF(*c); + *c = new_c; } return 0; } |