summaryrefslogtreecommitdiffstats
path: root/cython/mobile_image_mounter.pxi
diff options
context:
space:
mode:
authorGravatar Bryan Forbes2010-04-30 13:35:57 -0500
committerGravatar Martin Szulecki2012-03-20 23:25:55 +0100
commit3877711296cbfa4a0bcafc3c5560609a1ce2d079 (patch)
tree751f1fd27ce3ee5d8dd9d748600381c0d2e5d6bd /cython/mobile_image_mounter.pxi
parent74943414c8e04a92f42dcbc4fac1599c7f9deed2 (diff)
downloadlibimobiledevice-3877711296cbfa4a0bcafc3c5560609a1ce2d079.tar.gz
libimobiledevice-3877711296cbfa4a0bcafc3c5560609a1ce2d079.tar.bz2
More memory leak plugging. Some code cleanup too.
Diffstat (limited to 'cython/mobile_image_mounter.pxi')
-rw-r--r--cython/mobile_image_mounter.pxi26
1 files changed, 17 insertions, 9 deletions
diff --git a/cython/mobile_image_mounter.pxi b/cython/mobile_image_mounter.pxi
index e70cff7..bf304d4 100644
--- a/cython/mobile_image_mounter.pxi
+++ b/cython/mobile_image_mounter.pxi
@@ -32,11 +32,7 @@ cdef class MobileImageMounterClient(PropertyListService):
32 cdef mobile_image_mounter_client_t _c_client 32 cdef mobile_image_mounter_client_t _c_client
33 33
34 def __cinit__(self, iDevice device not None, int port, *args, **kwargs): 34 def __cinit__(self, iDevice device not None, int port, *args, **kwargs):
35 cdef: 35 self.handle_error(mobile_image_mounter_new(device._c_dev, port, &self._c_client))
36 iDevice dev = device
37 mobile_image_mounter_error_t err
38 err = mobile_image_mounter_new(dev._c_dev, port, &self._c_client)
39 self.handle_error(err)
40 36
41 def __dealloc__(self): 37 def __dealloc__(self):
42 cdef mobile_image_mounter_error_t err 38 cdef mobile_image_mounter_error_t err
@@ -52,8 +48,14 @@ cdef class MobileImageMounterClient(PropertyListService):
52 plist.plist_t c_node = NULL 48 plist.plist_t c_node = NULL
53 mobile_image_mounter_error_t err 49 mobile_image_mounter_error_t err
54 err = mobile_image_mounter_lookup_image(self._c_client, image_type, &c_node) 50 err = mobile_image_mounter_lookup_image(self._c_client, image_type, &c_node)
55 self.handle_error(err) 51
56 return plist.plist_t_to_node(c_node) 52 try:
53 self.handle_error(err)
54
55 return plist.plist_t_to_node(c_node)
56 except Exception, e:
57 if c_node != NULL:
58 plist.plist_free(c_node)
57 59
58 cpdef plist.Node mount_image(self, bytes image_path, bytes image_signature, bytes image_type): 60 cpdef plist.Node mount_image(self, bytes image_path, bytes image_signature, bytes image_type):
59 cdef: 61 cdef:
@@ -61,8 +63,14 @@ cdef class MobileImageMounterClient(PropertyListService):
61 mobile_image_mounter_error_t err 63 mobile_image_mounter_error_t err
62 err = mobile_image_mounter_mount_image(self._c_client, image_path, image_signature, len(image_signature), 64 err = mobile_image_mounter_mount_image(self._c_client, image_path, image_signature, len(image_signature),
63 image_type, &c_node) 65 image_type, &c_node)
64 self.handle_error(err) 66
65 return plist.plist_t_to_node(c_node) 67 try:
68 self.handle_error(err)
69
70 return plist.plist_t_to_node(c_node)
71 except Exception, e:
72 if c_node != NULL:
73 plist.plist_free(c_node)
66 74
67 cpdef hangup(self): 75 cpdef hangup(self):
68 cdef mobile_image_mounter_error_t err 76 cdef mobile_image_mounter_error_t err