summaryrefslogtreecommitdiffstats
path: root/Modules/posixmodule.c
diff options
context:
space:
mode:
authorSteve Dower <steve.dower@microsoft.com>2015-03-21 04:49:12 (GMT)
committerSteve Dower <steve.dower@microsoft.com>2015-03-21 04:49:12 (GMT)
commit2ea51c98db217498039e3d36650cd4a1c977d734 (patch)
tree3c7229906a789d8b9d91990ff79c8fc0859d8d39 /Modules/posixmodule.c
parentef42dae7fa69dccbf5ca6ba50545cd9c8c026667 (diff)
downloadcpython-2ea51c98db217498039e3d36650cd4a1c977d734.zip
cpython-2ea51c98db217498039e3d36650cd4a1c977d734.tar.gz
cpython-2ea51c98db217498039e3d36650cd4a1c977d734.tar.bz2
Closes #9445: Removes detection of GetFinalPathNameByHandle
Diffstat (limited to 'Modules/posixmodule.c')
-rw-r--r--Modules/posixmodule.c56
1 files changed, 6 insertions, 50 deletions
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index 7aa8050..9a44d46 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -1437,31 +1437,6 @@ attributes_from_dir_w(LPCWSTR pszFile, BY_HANDLE_FILE_INFORMATION *info, ULONG *
return TRUE;
}
-/* Grab GetFinalPathNameByHandle dynamically from kernel32 */
-static int has_GetFinalPathNameByHandle = -1;
-static DWORD (CALLBACK *Py_GetFinalPathNameByHandleW)(HANDLE, LPWSTR, DWORD,
- DWORD);
-static int
-check_GetFinalPathNameByHandle()
-{
- HINSTANCE hKernel32;
- DWORD (CALLBACK *Py_GetFinalPathNameByHandleA)(HANDLE, LPSTR, DWORD,
- DWORD);
-
- /* only recheck */
- if (-1 == has_GetFinalPathNameByHandle)
- {
- hKernel32 = GetModuleHandleW(L"KERNEL32");
- *(FARPROC*)&Py_GetFinalPathNameByHandleA = GetProcAddress(hKernel32,
- "GetFinalPathNameByHandleA");
- *(FARPROC*)&Py_GetFinalPathNameByHandleW = GetProcAddress(hKernel32,
- "GetFinalPathNameByHandleW");
- has_GetFinalPathNameByHandle = Py_GetFinalPathNameByHandleA &&
- Py_GetFinalPathNameByHandleW;
- }
- return has_GetFinalPathNameByHandle;
-}
-
static BOOL
get_target_path(HANDLE hdl, wchar_t **target_path)
{
@@ -1470,8 +1445,8 @@ get_target_path(HANDLE hdl, wchar_t **target_path)
/* We have a good handle to the target, use it to determine
the target path name (then we'll call lstat on it). */
- buf_size = Py_GetFinalPathNameByHandleW(hdl, 0, 0,
- VOLUME_NAME_DOS);
+ buf_size = GetFinalPathNameByHandleW(hdl, 0, 0,
+ VOLUME_NAME_DOS);
if(!buf_size)
return FALSE;
@@ -1481,7 +1456,7 @@ get_target_path(HANDLE hdl, wchar_t **target_path)
return FALSE;
}
- result_length = Py_GetFinalPathNameByHandleW(hdl,
+ result_length = GetFinalPathNameByHandleW(hdl,
buf, buf_size, VOLUME_NAME_DOS);
if(!result_length) {
@@ -1514,12 +1489,6 @@ win32_xstat_impl(const char *path, struct _Py_stat_struct *result,
wchar_t *target_path;
const char *dot;
- if(!check_GetFinalPathNameByHandle()) {
- /* If the OS doesn't have GetFinalPathNameByHandle, don't
- traverse reparse point. */
- traverse = FALSE;
- }
-
hFile = CreateFileA(
path,
FILE_READ_ATTRIBUTES, /* desired access */
@@ -1610,12 +1579,6 @@ win32_xstat_impl_w(const wchar_t *path, struct _Py_stat_struct *result,
wchar_t *target_path;
const wchar_t *dot;
- if(!check_GetFinalPathNameByHandle()) {
- /* If the OS doesn't have GetFinalPathNameByHandle, don't
- traverse reparse point. */
- traverse = FALSE;
- }
-
hFile = CreateFileW(
path,
FILE_READ_ATTRIBUTES, /* desired access */
@@ -4700,13 +4663,6 @@ os__getfinalpathname_impl(PyModuleDef *module, PyObject *path)
if (path_wchar == NULL)
return NULL;
- if(!check_GetFinalPathNameByHandle()) {
- /* If the OS doesn't have GetFinalPathNameByHandle, return a
- NotImplementedError. */
- return PyErr_Format(PyExc_NotImplementedError,
- "GetFinalPathNameByHandle not available on this platform");
- }
-
hFile = CreateFileW(
path_wchar,
0, /* desired access */
@@ -4722,7 +4678,7 @@ os__getfinalpathname_impl(PyModuleDef *module, PyObject *path)
/* We have a good handle to the target, use it to determine the
target path name. */
- buf_size = Py_GetFinalPathNameByHandleW(hFile, 0, 0, VOLUME_NAME_NT);
+ buf_size = GetFinalPathNameByHandleW(hFile, 0, 0, VOLUME_NAME_NT);
if(!buf_size)
return win32_error_object("GetFinalPathNameByHandle", path);
@@ -4731,8 +4687,8 @@ os__getfinalpathname_impl(PyModuleDef *module, PyObject *path)
if(!target_path)
return PyErr_NoMemory();
- result_length = Py_GetFinalPathNameByHandleW(hFile, target_path,
- buf_size, VOLUME_NAME_DOS);
+ result_length = GetFinalPathNameByHandleW(hFile, target_path,
+ buf_size, VOLUME_NAME_DOS);
if(!result_length)
return win32_error_object("GetFinalPathNamyByHandle", path);