From 5e002f83a23b6e1caa655ec54d1fcb5e9caeb7aa Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Fri, 31 Aug 2007 18:17:11 +0000 Subject: [PATCH] Fix for 182099 - The wrong proc names were use for the Job object calls. To fix, I've gotten rid of the GetProcAddress calls and called these functions directly. Since these functions are only available on Windows 2000 and later, we have now officially dropped Windows NT4.0 and earlier. --- .../library/starter/starter.cpp | 35 ++++++------------ .../os/win32/x86/starter.exe | Bin 30331 -> 30051 bytes 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/core/org.eclipse.cdt.core.win32/library/starter/starter.cpp b/core/org.eclipse.cdt.core.win32/library/starter/starter.cpp index 7cd91cdfdae..29de0b5ced4 100644 --- a/core/org.eclipse.cdt.core.win32/library/starter/starter.cpp +++ b/core/org.eclipse.cdt.core.win32/library/starter/starter.cpp @@ -15,7 +15,8 @@ *******************************************************************************/ #define STRICT -#include +#define _WIN32_WINNT 0x0500 +#include #include #include #include @@ -270,23 +271,18 @@ int main() { swprintf(buffer, _T("Starting: %s\n"), szCmdLine); OutputDebugStringW(buffer); #endif - // Create job object if it is possible - HMODULE hKernel = GetModuleHandle(L"kernel32.dll"); - HANDLE hJob = NULL; - HANDLE (WINAPI * pCreateJobObject)(LPSECURITY_ATTRIBUTES lpJobAttributes, - char * lpName); - *(FARPROC *)&pCreateJobObject = - GetProcAddress(hKernel, "CreateJobObjectA"); - - if(NULL != pCreateJobObject) - hJob = pCreateJobObject(NULL, NULL); + // Create job object + HANDLE hJob = CreateJobObject(NULL, NULL); + // Spawn the other processes as part of this Process Group BOOL f = CreateProcessW(NULL, szCmdLine, NULL, NULL, TRUE, 0, NULL, NULL, &si, &pi); + // We don't need them any more CloseHandle(stdHandles[0]); CloseHandle(stdHandles[1]); CloseHandle(stdHandles[2]); + if (f) { #ifdef DEBUG_MONITOR swprintf(buffer, _T("Process %i started\n"), pi.dwProcessId); @@ -297,11 +293,7 @@ int main() { h[1] = pi.hProcess; if(NULL != hJob) { - HANDLE (WINAPI * pAssignProcessToJobObject)(HANDLE job, HANDLE process); - *(FARPROC *)&pAssignProcessToJobObject = - GetProcAddress(hKernel, "AssignProcessToJobObjectA"); - if(NULL != pAssignProcessToJobObject) - if(!pAssignProcessToJobObject(hJob, pi.hProcess)) { + if(!AssignProcessToJobObject(hJob, pi.hProcess)) { #ifdef DEBUG_MONITOR swprintf(buffer, _T("Cannot assign process %i to a job\n"), pi.dwProcessId); OutputDebugStringW(buffer); @@ -367,16 +359,11 @@ int main() { SetEvent(waitEvent); if(NULL != hJob) { - HANDLE (WINAPI * pTerminateJobObject)(HANDLE job, UINT uExitCode); - *(FARPROC *)&pTerminateJobObject = - GetProcAddress(hKernel, "TerminateJobObjectA"); - if(NULL != pTerminateJobObject) { - if(!pTerminateJobObject(hJob, (DWORD)-1)) { + if(!TerminateJobObject(hJob, (DWORD)-1)) { #ifdef DEBUG_MONITOR - OutputDebugStringW(_T("Cannot terminate job\n")); - DisplayErrorMessage(); + OutputDebugStringW(_T("Cannot terminate job\n")); + DisplayErrorMessage(); #endif - } } } else exitProc = TRUE; diff --git a/core/org.eclipse.cdt.core.win32/os/win32/x86/starter.exe b/core/org.eclipse.cdt.core.win32/os/win32/x86/starter.exe index 1c9214dde750c5c8e6032045ab649a84bf028890..be5741c82bdcc82589761640d156d61ca6e73cb7 100644 GIT binary patch delta 9037 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 delta 8997 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