e01ff40
From 9025eeb2bf2cba851073cb4178fd71f71c74391d Mon Sep 17 00:00:00 2001
e01ff40
From: Robin Lee <cheeselee@fedoraproject.org>
e01ff40
Date: Thu, 8 Aug 2019 17:16:21 +0800
e01ff40
Subject: [PATCH] chewing.py supports platforms with 64bit pointer
e01ff40
e01ff40
The old code will segfault on platforms with 64bit pointer like x86_64.
e01ff40
---
e01ff40
 contrib/python/chewing.py | 6 ++++--
e01ff40
 1 file changed, 4 insertions(+), 2 deletions(-)
e01ff40
e01ff40
diff --git a/contrib/python/chewing.py b/contrib/python/chewing.py
e01ff40
index a9f17ec..acf000b 100644
e01ff40
--- a/contrib/python/chewing.py
e01ff40
+++ b/contrib/python/chewing.py
e01ff40
@@ -19,6 +19,8 @@ _libchewing.chewing_cand_String.restype = c_char_p
e01ff40
 _libchewing.chewing_zuin_String.restype = c_char_p
e01ff40
 _libchewing.chewing_aux_String.restype = c_char_p
e01ff40
 _libchewing.chewing_get_KBString.restype = c_char_p
e01ff40
+_libchewing.chewing_new.restype = c_void_p
e01ff40
+_libchewing.chewing_new2.restype = c_void_p
e01ff40
 
e01ff40
 
e01ff40
 def Init(datadir, userdir):
e01ff40
@@ -39,12 +41,12 @@ class ChewingContext:
e01ff40
                 None)
e01ff40
 
e01ff40
     def __del__(self):
e01ff40
-        _libchewing.chewing_delete(self.ctx)
e01ff40
+        _libchewing.chewing_delete(c_void_p(self.ctx))
e01ff40
 
e01ff40
     def __getattr__(self, name):
e01ff40
         func = 'chewing_' + name
e01ff40
         if hasattr(_libchewing, func):
e01ff40
-            wrap = partial(getattr(_libchewing, func), self.ctx)
e01ff40
+            wrap = partial(getattr(_libchewing, func), c_void_p(self.ctx))
e01ff40
             setattr(self, name, wrap)
e01ff40
             return wrap
e01ff40
         else:
e01ff40
-- 
e01ff40
2.21.0
e01ff40