[pypy-commit] pypy default: Blind fix (OS/X 64): support full unsigned 64-bit values in the first
arigo
noreply at buildbot.pypy.org
Mon May 14 13:08:02 CEST 2012
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r55084:28d0045776ac
Date: 2012-05-14 13:07 +0200
http://bitbucket.org/pypy/pypy/changeset/28d0045776ac/
Log: Blind fix (OS/X 64): support full unsigned 64-bit values in the
first and last argument to select.kevent().
diff --git a/pypy/module/select/interp_kqueue.py b/pypy/module/select/interp_kqueue.py
--- a/pypy/module/select/interp_kqueue.py
+++ b/pypy/module/select/interp_kqueue.py
@@ -3,6 +3,7 @@
from pypy.interpreter.gateway import interp2app, unwrap_spec
from pypy.interpreter.typedef import TypeDef, generic_new_descr, GetSetProperty
from pypy.rlib._rsocket_rffi import socketclose
+from pypy.rlib.rarithmetic import r_uint
from pypy.rpython.lltypesystem import rffi, lltype
from pypy.rpython.tool import rffi_platform
from pypy.translator.tool.cbuild import ExternalCompilationInfo
@@ -226,9 +227,12 @@
if self.event:
lltype.free(self.event, flavor="raw")
- @unwrap_spec(filter=int, flags='c_uint', fflags='c_uint', data=int, udata='c_uint')
- def descr__init__(self, space, w_ident, filter=KQ_FILTER_READ, flags=KQ_EV_ADD, fflags=0, data=0, udata=0):
- ident = space.c_filedescriptor_w(w_ident)
+ @unwrap_spec(filter=int, flags='c_uint', fflags='c_uint', data=int, udata=r_uint)
+ def descr__init__(self, space, w_ident, filter=KQ_FILTER_READ, flags=KQ_EV_ADD, fflags=0, data=0, udata=r_uint(0)):
+ if space.isinstance_w(w_ident, space.w_long):
+ ident = space.uint_w(w_ident)
+ else:
+ ident = r_uint(space.c_filedescriptor_w(w_ident))
self.event = lltype.malloc(kevent, flavor="raw")
rffi.setintfield(self.event, "c_ident", ident)
@@ -320,7 +324,7 @@
return space.wrap(self.event.c_data)
def descr_get_udata(self, space):
- return space.wrap(rffi.cast(rffi.SIZE_T, self.event.c_udata))
+ return space.wrap(rffi.cast(rffi.UINTPTR_T, self.event.c_udata))
W_Kevent.typedef = TypeDef("select.kevent",
More information about the pypy-commit
mailing list