From fe60a09392e03a5f1e780c09c2a689c319142b58 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Wed, 25 Jul 2012 21:59:38 +0200 Subject: [PATCH] Dynamic linking in IdeaWin32 --- bin/win/IdeaWin32.dll | Bin 35840 -> 35840 bytes bin/win/IdeaWin64.dll | Bin 41472 -> 42496 bytes native/IdeaWin32/IdeaWin32.cpp | 14 ++++++++++++-- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/bin/win/IdeaWin32.dll b/bin/win/IdeaWin32.dll index 3256217b082d27d90654e929067df7309d5fd0ee..9d1f6def39b08e48aebf660128f40f0bf961a33a 100644 GIT binary patch delta 7325 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 T?C5gHa9_4_TJzxg(^3Bm-4~K4 delta 7230 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 diff --git a/bin/win/IdeaWin64.dll b/bin/win/IdeaWin64.dll index 82abbb1c3e65a918b753cee50682046795da9cff..0e1c902938885647c60de93f96ab511d03cdb656 100644 GIT binary patch delta 9263 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≠Phi_=Lwq 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 NWIS*04BGj<@Gl$U^y~lt diff --git a/native/IdeaWin32/IdeaWin32.cpp b/native/IdeaWin32/IdeaWin32.cpp index b433870f05d4..b6e9fa11be2b 100644 --- a/native/IdeaWin32/IdeaWin32.cpp +++ b/native/IdeaWin32/IdeaWin32.cpp @@ -17,6 +17,8 @@ #include "IdeaWin32.h" #include +typedef DWORD (WINAPI *GetFinalPathNameByHandlePtr) (HANDLE, LPCWSTR, DWORD, DWORD dwFlags); +static GetFinalPathNameByHandlePtr __GetFinalPathNameByHandle = NULL; static jfieldID nameID = NULL; static jfieldID attributesID = NULL; @@ -66,6 +68,7 @@ static jobject CreateFileInfo(JNIEnv *env, jstring path, bool append, LPWIN32_FI timestamp = 0; length = 0; + // todo: optimize to avoid extra copying size_t nameLen = env->GetStringLength(path) + wcslen(lpData->cFileName) + 2; wchar_t *lpName = (wchar_t *)malloc(nameLen * sizeof(wchar_t)); if (lpName != NULL) { @@ -116,6 +119,9 @@ static jobject CreateFileInfo(JNIEnv *env, jstring path, bool append, LPWIN32_FI JNIEXPORT void JNICALL Java_com_intellij_openapi_util_io_win32_IdeaWin32_initIDs(JNIEnv *env, jclass cls) { + __GetFinalPathNameByHandle = + (GetFinalPathNameByHandlePtr)GetProcAddress(GetModuleHandle(L"kernel32.dll"), "GetFinalPathNameByHandleW"); + jclass fileInfoClass = getFileInfoClass(env); if (fileInfoClass == NULL) { return; @@ -166,6 +172,10 @@ JNIEXPORT jobject JNICALL Java_com_intellij_openapi_util_io_win32_IdeaWin32_getI JNIEXPORT jstring JNICALL Java_com_intellij_openapi_util_io_win32_IdeaWin32_resolveSymLink0(JNIEnv *env, jobject method, jstring path) { + if (__GetFinalPathNameByHandle == NULL) { + return NULL; // XP + } + WIN32_FIND_DATA data; HANDLE h = FindFileInner(env, path, &data); if (h == INVALID_HANDLE_VALUE) { @@ -187,7 +197,7 @@ JNIEXPORT jstring JNICALL Java_com_intellij_openapi_util_io_win32_IdeaWin32_reso jstring result = NULL; TCHAR name[MAX_PATH]; - DWORD len = GetFinalPathNameByHandle(th, name, MAX_PATH, 0); + DWORD len = __GetFinalPathNameByHandle(th, name, MAX_PATH, 0); if (len > 0) { if (len < MAX_PATH) { result = env->NewString((jchar *)name, len); @@ -195,7 +205,7 @@ JNIEXPORT jstring JNICALL Java_com_intellij_openapi_util_io_win32_IdeaWin32_reso else { TCHAR *name = (TCHAR *)malloc(sizeof(TCHAR) * (len + 1)); if (name != NULL) { - len = GetFinalPathNameByHandle(th, name, len, 0); + len = __GetFinalPathNameByHandle(th, name, len, 0); if (len > 0) { result = env->NewString((jchar *)name, len); }