From d8e3575a465d28c91efb285035fb8e4aa15b27da Mon Sep 17 00:00:00 2001
From: INADA Naoki <songofacandy@gmail.com>
Date: Tue, 26 Oct 2010 01:32:08 +0900
Subject: [PATCH] Remove unnecessary refcount manipulation.

---
 python/msgpack/_msgpack.pyx | 4 ----
 python/msgpack/unpack.h     | 1 -
 2 files changed, 5 deletions(-)

diff --git a/python/msgpack/_msgpack.pyx b/python/msgpack/_msgpack.pyx
index fb7f0c1e..24e4f8b9 100644
--- a/python/msgpack/_msgpack.pyx
+++ b/python/msgpack/_msgpack.pyx
@@ -202,12 +202,8 @@ def unpackb(bytes packed_bytes, object object_hook=None):
     if object_hook is not None:
         if not PyCallable_Check(object_hook):
             raise TypeError("object_hook must be a callable.")
-        Py_INCREF(object_hook)
         ctx.user.object_hook = <PyObject*>object_hook
     ret = template_execute(&ctx, p, len(packed_bytes), &off)
-    if object_hook is not None:
-        pass
-        #Py_DECREF(object_hook)
     if ret == 1:
         return template_data(&ctx)
     else:
diff --git a/python/msgpack/unpack.h b/python/msgpack/unpack.h
index e4c03bdd..404ee5ad 100644
--- a/python/msgpack/unpack.h
+++ b/python/msgpack/unpack.h
@@ -178,7 +178,6 @@ int template_callback_map_end(unpack_user* u, msgpack_unpack_object* c)
 {
     if (u->object_hook) {
         PyObject *arglist = Py_BuildValue("(O)", *c);
-        Py_INCREF(*c);
         *c = PyEval_CallObject(u->object_hook, arglist);
         Py_DECREF(arglist);
         return 0;