Author: Philip Jenvey <[email protected]>
Branch: py3k
Changeset: r73683:2e736033bd2b
Date: 2014-09-24 19:14 -0700
http://bitbucket.org/pypy/pypy/changeset/2e736033bd2b/
Log: we really want a unicodebuffer here
diff --git a/rpython/rtyper/module/ll_win32file.py
b/rpython/rtyper/module/ll_win32file.py
--- a/rpython/rtyper/module/ll_win32file.py
+++ b/rpython/rtyper/module/ll_win32file.py
@@ -476,24 +476,24 @@
VOLUME_NAME_DOS = rffi.cast(rwin32.DWORD, win32traits.VOLUME_NAME_DOS)
try:
- size = win32traits.GetFinalPathNameByHandle(
+ usize = win32traits.GetFinalPathNameByHandle(
hFile,
lltype.nullptr(traits.CCHARP.TO),
rffi.cast(rwin32.DWORD, 0),
VOLUME_NAME_DOS)
- if size == 0:
+ if usize == 0:
raise rwin32.lastWindowsError("GetFinalPathNameByHandle")
- with lltype.scoped_alloc(traits.CCHARP.TO, size + 1) as
target_path:
+ size = rffi.cast(lltype.Signed, usize)
+ with rffi.scoped_alloc_unicodebuffer(size + 1) as buf:
result = win32traits.GetFinalPathNameByHandle(
hFile,
- target_path,
- size,
+ buf.raw,
+ usize,
VOLUME_NAME_DOS)
if result == 0:
raise rwin32.lastWindowsError("GetFinalPathNameByHandle")
- return traits.charpsize2str(target_path,
- rffi.cast(lltype.Signed, result))
+ return buf.str(rffi.cast(lltype.Signed, result))
finally:
rwin32.CloseHandle(hFile)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit