[pypy-svn] r57704 - pypy/dist/pypy/lib

fijal at codespeak.net fijal at codespeak.net
Sun Aug 31 19:50:50 CEST 2008


Author: fijal
Date: Sun Aug 31 19:50:47 2008
New Revision: 57704

Modified:
   pypy/dist/pypy/lib/pyexpat.py
Log:
I'm stupid as hell. And ctypes does not help me. I wonder why it did not 
bite before, but result is called restype in ctypes, not result. Fixes 
64bit segfault in xml parser.


Modified: pypy/dist/pypy/lib/pyexpat.py
==============================================================================
--- pypy/dist/pypy/lib/pyexpat.py	(original)
+++ pypy/dist/pypy/lib/pyexpat.py	Sun Aug 31 19:50:47 2008
@@ -50,7 +50,7 @@
 def declare_external(name, args, res):
     func = getattr(lib, name)
     func.args = args
-    func.result = res
+    func.restype = res
     globals()[name] = func
 
 declare_external('XML_ParserCreate', [c_char_p], XML_Parser)
@@ -61,15 +61,14 @@
 for name in currents:
     func = getattr(lib, 'XML_Get' + name)
     func.args = [XML_Parser]
-    func.result = c_int
+    func.restype = c_int
 
 declare_external('XML_SetReturnNSTriplet', [XML_Parser, c_int], None)
 declare_external('XML_GetSpecifiedAttributeCount', [XML_Parser], c_int)
 declare_external('XML_SetParamEntityParsing', [XML_Parser, c_int], None)
 declare_external('XML_GetErrorCode', [XML_Parser], c_int)
 declare_external('XML_StopParser', [XML_Parser, c_int], None)
-lib.XML_ErrorString.args = [c_int]
-lib.XML_ErrorString.result = c_int
+declare_external('XML_ErrorString', [c_int], c_char_p)
 declare_external('XML_SetBase', [XML_Parser, c_char_p], None)
 
 declare_external('XML_SetUnknownEncodingHandler', [XML_Parser, c_void_p,
@@ -77,12 +76,6 @@
 declare_external('XML_FreeContentModel', [XML_Parser, POINTER(XML_Content)],
                  None)
 
-def XML_ErrorString(code):
-    res = lib.XML_ErrorString(code)
-    p = c_char_p()
-    p.value = res
-    return p.value
-
 handler_names = [
     'StartElement',
     'EndElement',



More information about the Pypy-commit mailing list