Re: Win32: Minimising desktop heap usage - Mailing list pgsql-patches
From | Dave Page |
---|---|
Subject | Re: Win32: Minimising desktop heap usage |
Date | |
Msg-id | [email protected] Whole thread Raw |
In response to | Re: Win32: Minimising desktop heap usage (Tom Lane <[email protected]>) |
Responses |
Re: Win32: Minimising desktop heap usage
|
List | pgsql-patches |
Tom Lane wrote: > [ looks again... ] Actually, I think you just proved my point for me. > The ZeroMemory call should go away, no? Yup, quite correct. v3 attached. /D Index: src/backend/port/win32/signal.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/backend/port/win32/signal.c,v retrieving revision 1.18 diff -c -r1.18 signal.c *** src/backend/port/win32/signal.c 5 Jan 2007 22:19:35 -0000 1.18 --- src/backend/port/win32/signal.c 23 Oct 2007 16:02:41 -0000 *************** *** 178,184 **** char pipename[128]; HANDLE pipe; ! wsprintf(pipename, "\\\\.\\pipe\\pgsignal_%d", (int) pid); pipe = CreateNamedPipe(pipename, PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, --- 178,184 ---- char pipename[128]; HANDLE pipe; ! snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\pgsignal_%u", (int) pid); pipe = CreateNamedPipe(pipename, PIPE_ACCESS_DUPLEX, PIPE_TYPE_MESSAGE | PIPE_READMODE_MESSAGE | PIPE_WAIT, *************** *** 251,257 **** char pipename[128]; HANDLE pipe = pgwin32_initial_signal_pipe; ! wsprintf(pipename, "\\\\.\\pipe\\pgsignal_%d", GetCurrentProcessId()); for (;;) { --- 251,257 ---- char pipename[128]; HANDLE pipe = pgwin32_initial_signal_pipe; ! snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\pgsignal_%u", GetCurrentProcessId()); for (;;) { Index: src/port/kill.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/port/kill.c,v retrieving revision 1.8 diff -c -r1.8 kill.c *** src/port/kill.c 5 Jan 2007 22:20:02 -0000 1.8 --- src/port/kill.c 23 Oct 2007 16:02:41 -0000 *************** *** 38,44 **** errno = EINVAL; return -1; } ! wsprintf(pipename, "\\\\.\\pipe\\pgsignal_%i", pid); if (!CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000)) { if (GetLastError() == ERROR_FILE_NOT_FOUND) --- 38,44 ---- errno = EINVAL; return -1; } ! snprintf(pipename, sizeof(pipename), "\\\\.\\pipe\\pgsignal_%u", pid); if (!CallNamedPipe(pipename, &sigData, 1, &sigRet, 1, &bytes, 1000)) { if (GetLastError() == ERROR_FILE_NOT_FOUND) Index: src/port/path.c =================================================================== RCS file: /projects/cvsroot/pgsql/src/port/path.c,v retrieving revision 1.71 diff -c -r1.71 path.c *** src/port/path.c 5 Jan 2007 22:20:02 -0000 1.71 --- src/port/path.c 23 Oct 2007 16:04:42 -0000 *************** *** 628,637 **** strlcpy(ret_path, pwd->pw_dir, MAXPGPATH); return true; #else ! char tmppath[MAX_PATH]; ! ZeroMemory(tmppath, sizeof(tmppath)); ! if (SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, tmppath) != S_OK) return false; snprintf(ret_path, MAXPGPATH, "%s/postgresql", tmppath); return true; --- 628,641 ---- strlcpy(ret_path, pwd->pw_dir, MAXPGPATH); return true; #else ! char *tmppath; ! /* ! * Note: We use getenv here because the more modern SHGetSpecialFolderPath() ! * will force us to link with shell32.lib which eats valuable desktop heap. ! */ ! tmppath = getenv("APPDATA"); ! if (!tmppath) return false; snprintf(ret_path, MAXPGPATH, "%s/postgresql", tmppath); return true;
pgsql-patches by date: