Author: Philip Jenvey <[email protected]>
Branch:
Changeset: r87336:9f43cc50b128
Date: 2016-09-22 19:57 -0700
http://bitbucket.org/pypy/pypy/changeset/9f43cc50b128/
Log: refactor for py3k
diff --git a/lib_pypy/_subprocess.py b/lib_pypy/_subprocess.py
--- a/lib_pypy/_subprocess.py
+++ b/lib_pypy/_subprocess.py
@@ -22,7 +22,10 @@
code, message = _ffi.getwinerror()
raise WindowsError(code, message)
-_INVALID_HANDLE_VALUE = _ffi.cast("HANDLE", -1)
+def _int2handle(val):
+ return _ffi.cast("HANDLE", val)
+
+_INVALID_HANDLE_VALUE = _int2handle(-1)
class _handle(object):
def __init__(self, c_handle):
@@ -70,9 +73,9 @@
target = _ffi.new("HANDLE[1]")
res = _kernel32.DuplicateHandle(
- _ffi.cast("HANDLE", source_process),
- _ffi.cast("HANDLE", source),
- _ffi.cast("HANDLE", target_process),
+ _int2handle(source_process),
+ _int2handle(source),
+ _int2handle(target_process),
target, access, inherit, options)
if not res:
@@ -119,12 +122,14 @@
if not res:
raise _WinError()
- return _handle(pi.hProcess), _handle(pi.hThread), pi.dwProcessId,
pi.dwThreadId
+ return (_handle(pi.hProcess),
+ _handle(pi.hThread),
+ pi.dwProcessId,
+ pi.dwThreadId)
def WaitForSingleObject(handle, milliseconds):
# CPython: the first argument is expected to be an integer.
- res = _kernel32.WaitForSingleObject(_ffi.cast("HANDLE", handle),
- milliseconds)
+ res = _kernel32.WaitForSingleObject(_int2handle(handle), milliseconds)
if res < 0:
raise _WinError()
@@ -134,7 +139,7 @@
# CPython: the first argument is expected to be an integer.
code = _ffi.new("DWORD[1]")
- res = _kernel32.GetExitCodeProcess(_ffi.cast("HANDLE", handle), code)
+ res = _kernel32.GetExitCodeProcess(_int2handle(handle), code)
if not res:
raise _WinError()
@@ -144,7 +149,7 @@
def TerminateProcess(handle, exitcode):
# CPython: the first argument is expected to be an integer.
# The second argument is silently wrapped in a UINT.
- res = _kernel32.TerminateProcess(_ffi.cast("HANDLE", handle),
+ res = _kernel32.TerminateProcess(_int2handle(handle),
_ffi.cast("UINT", exitcode))
if not res:
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit