[IMM32] Define Imm32HeapFree macro and use it (#3962)

- Define Imm32HeapFree macro in precomp.h and use it.
- Omit some NULL checks (for HeapFree).
CORE-11700
This commit is contained in:
Katayama Hirofumi MZ 2021-09-19 01:52:05 +09:00 committed by GitHub
parent df6fff78bb
commit 5b522667a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 45 additions and 72 deletions

View file

@ -221,7 +221,7 @@ PIMEDPI APIENTRY Ime32LoadImeDpi(HKL hKL, BOOL bLock)
if (!Imm32LoadImeInfo(&ImeInfoEx, pImeDpiNew)) if (!Imm32LoadImeInfo(&ImeInfoEx, pImeDpiNew))
{ {
HeapFree(g_hImm32Heap, 0, pImeDpiNew); Imm32HeapFree(pImeDpiNew);
return FALSE; return FALSE;
} }
@ -236,7 +236,7 @@ PIMEDPI APIENTRY Ime32LoadImeDpi(HKL hKL, BOOL bLock)
RtlLeaveCriticalSection(&g_csImeDpi); RtlLeaveCriticalSection(&g_csImeDpi);
Imm32FreeImeDpi(pImeDpiNew, FALSE); Imm32FreeImeDpi(pImeDpiNew, FALSE);
HeapFree(g_hImm32Heap, 0, pImeDpiNew); Imm32HeapFree(pImeDpiNew);
return pImeDpiFound; return pImeDpiFound;
} }
else else
@ -477,7 +477,7 @@ VOID WINAPI ImmUnlockImeDpi(PIMEDPI pImeDpi)
} }
Imm32FreeImeDpi(pImeDpi, TRUE); Imm32FreeImeDpi(pImeDpi, TRUE);
HeapFree(g_hImm32Heap, 0, pImeDpi); Imm32HeapFree(pImeDpi);
RtlLeaveCriticalSection(&g_csImeDpi); RtlLeaveCriticalSection(&g_csImeDpi);
} }
@ -1228,10 +1228,8 @@ ImmGetConversionListA(HKL hKL, HIMC hIMC, LPCSTR pSrc, LPCANDIDATELIST lpDst,
ret = CandidateListWideToAnsi(pCL, lpDst, dwBufLen, CP_ACP); ret = CandidateListWideToAnsi(pCL, lpDst, dwBufLen, CP_ACP);
Quit: Quit:
if (pszSrcW) Imm32HeapFree(pszSrcW);
HeapFree(g_hImm32Heap, 0, pszSrcW); Imm32HeapFree(pCL);
if (pCL)
HeapFree(g_hImm32Heap, 0, pCL);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -1285,10 +1283,8 @@ ImmGetConversionListW(HKL hKL, HIMC hIMC, LPCWSTR pSrc, LPCANDIDATELIST lpDst,
ret = CandidateListAnsiToWide(pCL, lpDst, dwBufLen, CP_ACP); ret = CandidateListAnsiToWide(pCL, lpDst, dwBufLen, CP_ACP);
Quit: Quit:
if (pszSrcA) Imm32HeapFree(pszSrcA);
HeapFree(g_hImm32Heap, 0, pszSrcA); Imm32HeapFree(pCL);
if (pCL)
HeapFree(g_hImm32Heap, 0, pCL);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -1429,10 +1425,8 @@ DoIt:
SendMessageW(hWnd, WM_IME_SYSTEM, 0x1A, 0); SendMessageW(hWnd, WM_IME_SYSTEM, 0x1A, 0);
Quit: Quit:
if (RegWordW.lpReading) Imm32HeapFree(RegWordW.lpReading);
HeapFree(g_hImm32Heap, 0, RegWordW.lpReading); Imm32HeapFree(RegWordW.lpWord);
if (RegWordW.lpWord)
HeapFree(g_hImm32Heap, 0, RegWordW.lpWord);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -1488,10 +1482,8 @@ DoIt:
SendMessageW(hWnd, WM_IME_SYSTEM, 0x1A, 0); SendMessageW(hWnd, WM_IME_SYSTEM, 0x1A, 0);
Quit: Quit:
if (RegWordA.lpReading) Imm32HeapFree(RegWordA.lpReading);
HeapFree(g_hImm32Heap, 0, RegWordA.lpReading); Imm32HeapFree(RegWordA.lpWord);
if (RegWordA.lpWord)
HeapFree(g_hImm32Heap, 0, RegWordA.lpWord);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }

View file

@ -321,7 +321,7 @@ HIMC WINAPI ImmCreateContext(void)
hIMC = NtUserCreateInputContext(pClientImc); hIMC = NtUserCreateInputContext(pClientImc);
if (hIMC == NULL) if (hIMC == NULL)
{ {
HeapFree(g_hImm32Heap, 0, pClientImc); Imm32HeapFree(pClientImc);
return NULL; return NULL;
} }
@ -464,7 +464,7 @@ PCLIENTIMC WINAPI ImmLockClientImc(HIMC hImc)
if (!NtUserUpdateInputContext(hImc, 0, pClientImc)) if (!NtUserUpdateInputContext(hImc, 0, pClientImc))
{ {
HeapFree(g_hImm32Heap, 0, pClientImc); Imm32HeapFree(pClientImc);
return NULL; return NULL;
} }
@ -499,7 +499,7 @@ VOID WINAPI ImmUnlockClientImc(PCLIENTIMC pClientImc)
LocalFree(hImc); LocalFree(hImc);
RtlDeleteCriticalSection(&pClientImc->cs); RtlDeleteCriticalSection(&pClientImc->cs);
HeapFree(g_hImm32Heap, 0, pClientImc); Imm32HeapFree(pClientImc);
} }
static HIMC APIENTRY Imm32GetContextEx(HWND hWnd, DWORD dwContextFlags) static HIMC APIENTRY Imm32GetContextEx(HWND hWnd, DWORD dwContextFlags)
@ -867,10 +867,8 @@ HKL WINAPI ImmInstallIMEA(LPCSTR lpszIMEFileName, LPCSTR lpszLayoutText)
hKL = ImmInstallIMEW(pszFileNameW, pszLayoutTextW); hKL = ImmInstallIMEW(pszFileNameW, pszLayoutTextW);
Quit: Quit:
if (pszFileNameW) Imm32HeapFree(pszFileNameW);
HeapFree(g_hImm32Heap, 0, pszFileNameW); Imm32HeapFree(pszLayoutTextW);
if (pszLayoutTextW)
HeapFree(g_hImm32Heap, 0, pszLayoutTextW);
return hKL; return hKL;
} }
@ -1183,7 +1181,7 @@ BOOL WINAPI ImmEnumInputContext(DWORD dwThreadId, IMCENUMPROC lpfn, LPARAM lPara
break; break;
} }
HeapFree(g_hImm32Heap, 0, phList); Imm32HeapFree(phList);
return ret; return ret;
} }

View file

@ -497,8 +497,7 @@ BOOL WINAPI ImmGenerateMessage(HIMC hIMC)
} }
Quit: Quit:
if (pTrans) Imm32HeapFree(pTrans);
HeapFree(g_hImm32Heap, 0, pTrans);
if (hMsgBuf) if (hMsgBuf)
ImmUnlockIMCC(hMsgBuf); ImmUnlockIMCC(hMsgBuf);
pIC->dwNumMsgBuf = 0; /* done */ pIC->dwNumMsgBuf = 0; /* done */
@ -557,8 +556,8 @@ Imm32PostMessages(HWND hwnd, HIMC hIMC, DWORD dwCount, LPTRANSMSG lpTransMsg)
} }
#ifdef IMM_NT3_SUPPORT #ifdef IMM_NT3_SUPPORT
if (pNewTransMsg && pNewTransMsg != lpTransMsg) if (pNewTransMsg != lpTransMsg)
HeapFree(g_hImm32Heap, 0, pNewTransMsg); Imm32HeapFree(pNewTransMsg);
#endif #endif
} }
@ -678,8 +677,7 @@ BOOL WINAPI ImmTranslateMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lKeyD
} }
Quit: Quit:
if (pList) Imm32HeapFree(pList);
HeapFree(g_hImm32Heap, 0, pList);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
ImmUnlockIMC(hIMC); ImmUnlockIMC(hIMC);
ImmReleaseContext(hwnd, hIMC); ImmReleaseContext(hwnd, hIMC);

View file

@ -166,7 +166,7 @@ DoDefault:
} }
} }
HeapFree(g_hImm32Heap, 0, pTempList); Imm32HeapFree(pTempList);
return ret; return ret;
} }

View file

@ -72,7 +72,10 @@ BOOL Imm32GetSystemLibraryPath(LPWSTR pszPath, DWORD cchPath, LPCWSTR pszFileNam
VOID APIENTRY LogFontAnsiToWide(const LOGFONTA *plfA, LPLOGFONTW plfW); VOID APIENTRY LogFontAnsiToWide(const LOGFONTA *plfA, LPLOGFONTW plfW);
VOID APIENTRY LogFontWideToAnsi(const LOGFONTW *plfW, LPLOGFONTA plfA); VOID APIENTRY LogFontWideToAnsi(const LOGFONTW *plfW, LPLOGFONTA plfA);
PWND FASTCALL ValidateHwndNoErr(HWND hwnd); PWND FASTCALL ValidateHwndNoErr(HWND hwnd);
LPVOID APIENTRY Imm32HeapAlloc(DWORD dwFlags, DWORD dwBytes); LPVOID APIENTRY Imm32HeapAlloc(DWORD dwFlags, DWORD dwBytes);
#define Imm32HeapFree(lpData) HeapFree(g_hImm32Heap, 0, (lpData))
LPWSTR APIENTRY Imm32WideFromAnsi(LPCSTR pszA); LPWSTR APIENTRY Imm32WideFromAnsi(LPCSTR pszA);
LPSTR APIENTRY Imm32AnsiFromWide(LPCWSTR pszW); LPSTR APIENTRY Imm32AnsiFromWide(LPCWSTR pszW);
PIMEDPI APIENTRY ImmLockOrLoadImeDpi(HKL hKL); PIMEDPI APIENTRY ImmLockOrLoadImeDpi(HKL hKL);

View file

@ -51,10 +51,8 @@ Imm32EnumWordProcA2W(LPCSTR pszReadingA, DWORD dwStyle, LPCSTR pszRegisterA, LPV
lpEnumData->ret = ret; lpEnumData->ret = ret;
Quit: Quit:
if (pszReadingW) Imm32HeapFree(pszReadingW);
HeapFree(g_hImm32Heap, 0, pszReadingW); Imm32HeapFree(pszRegisterW);
if (pszRegisterW)
HeapFree(g_hImm32Heap, 0, pszRegisterW);
return ret; return ret;
} }
@ -83,10 +81,8 @@ Imm32EnumWordProcW2A(LPCWSTR pszReadingW, DWORD dwStyle, LPCWSTR pszRegisterW, L
lpEnumData->ret = ret; lpEnumData->ret = ret;
Quit: Quit:
if (pszReadingA) Imm32HeapFree(pszReadingA);
HeapFree(g_hImm32Heap, 0, pszReadingA); Imm32HeapFree(pszRegisterA);
if (pszRegisterA)
HeapFree(g_hImm32Heap, 0, pszRegisterA);
return ret; return ret;
} }
@ -140,10 +136,8 @@ ImmEnumRegisterWordA(HKL hKL, REGISTERWORDENUMPROCA lpfnEnumProc,
ret = EnumDataW2A.ret; ret = EnumDataW2A.ret;
Quit: Quit:
if (pszReadingW) Imm32HeapFree(pszReadingW);
HeapFree(g_hImm32Heap, 0, pszReadingW); Imm32HeapFree(pszRegisterW);
if (pszRegisterW)
HeapFree(g_hImm32Heap, 0, pszRegisterW);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -198,10 +192,8 @@ ImmEnumRegisterWordW(HKL hKL, REGISTERWORDENUMPROCW lpfnEnumProc,
ret = EnumDataA2W.ret; ret = EnumDataA2W.ret;
Quit: Quit:
if (pszReadingA) Imm32HeapFree(pszReadingA);
HeapFree(g_hImm32Heap, 0, pszReadingA); Imm32HeapFree(pszRegisterA);
if (pszRegisterA)
HeapFree(g_hImm32Heap, 0, pszRegisterA);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -259,8 +251,7 @@ UINT WINAPI ImmGetRegisterWordStyleA(HKL hKL, UINT nItem, LPSTYLEBUFA lpStyleBuf
} }
Quit: Quit:
if (pNewStylesW) Imm32HeapFree(pNewStylesW);
HeapFree(g_hImm32Heap, 0, pNewStylesW);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -317,8 +308,7 @@ UINT WINAPI ImmGetRegisterWordStyleW(HKL hKL, UINT nItem, LPSTYLEBUFW lpStyleBuf
} }
Quit: Quit:
if (pNewStylesA) Imm32HeapFree(pNewStylesA);
HeapFree(g_hImm32Heap, 0, pNewStylesA);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -364,10 +354,8 @@ ImmRegisterWordA(HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszRegister
ret = pImeDpi->ImeRegisterWord(pszReadingW, dwStyle, pszRegisterW); ret = pImeDpi->ImeRegisterWord(pszReadingW, dwStyle, pszRegisterW);
Quit: Quit:
if (pszReadingW) Imm32HeapFree(pszReadingW);
HeapFree(g_hImm32Heap, 0, pszReadingW); Imm32HeapFree(pszRegisterW);
if (pszRegisterW)
HeapFree(g_hImm32Heap, 0, pszRegisterW);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -413,10 +401,8 @@ ImmRegisterWordW(HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszRegist
ret = pImeDpi->ImeRegisterWord(pszReadingA, dwStyle, pszRegisterA); ret = pImeDpi->ImeRegisterWord(pszReadingA, dwStyle, pszRegisterA);
Quit: Quit:
if (pszReadingA) Imm32HeapFree(pszReadingA);
HeapFree(g_hImm32Heap, 0, pszReadingA); Imm32HeapFree(pszRegisterA);
if (pszRegisterA)
HeapFree(g_hImm32Heap, 0, pszRegisterA);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -462,10 +448,8 @@ ImmUnregisterWordA(HKL hKL, LPCSTR lpszReading, DWORD dwStyle, LPCSTR lpszUnregi
ret = pImeDpi->ImeUnregisterWord(pszReadingW, dwStyle, pszUnregisterW); ret = pImeDpi->ImeUnregisterWord(pszReadingW, dwStyle, pszUnregisterW);
Quit: Quit:
if (pszReadingW) Imm32HeapFree(pszReadingW);
HeapFree(g_hImm32Heap, 0, pszReadingW); Imm32HeapFree(pszUnregisterW);
if (pszUnregisterW)
HeapFree(g_hImm32Heap, 0, pszUnregisterW);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }
@ -511,10 +495,8 @@ ImmUnregisterWordW(HKL hKL, LPCWSTR lpszReading, DWORD dwStyle, LPCWSTR lpszUnre
ret = pImeDpi->ImeUnregisterWord(pszReadingA, dwStyle, pszUnregisterA); ret = pImeDpi->ImeUnregisterWord(pszReadingA, dwStyle, pszUnregisterA);
Quit: Quit:
if (pszReadingA) Imm32HeapFree(pszReadingA);
HeapFree(g_hImm32Heap, 0, pszReadingA); Imm32HeapFree(pszUnregisterA);
if (pszUnregisterA)
HeapFree(g_hImm32Heap, 0, pszUnregisterA);
ImmUnlockImeDpi(pImeDpi); ImmUnlockImeDpi(pImeDpi);
return ret; return ret;
} }

View file

@ -162,7 +162,7 @@ DWORD APIENTRY Imm32AllocAndBuildHimcList(DWORD dwThreadId, HIMC **pphList)
Status = NtUserBuildHimcList(dwThreadId, dwCount, phNewList, &dwCount); Status = NtUserBuildHimcList(dwThreadId, dwCount, phNewList, &dwCount);
while (Status == STATUS_BUFFER_TOO_SMALL) while (Status == STATUS_BUFFER_TOO_SMALL)
{ {
HeapFree(g_hImm32Heap, 0, phNewList); Imm32HeapFree(phNewList);
if (cRetry++ >= MAX_RETRY) if (cRetry++ >= MAX_RETRY)
return 0; return 0;
@ -175,7 +175,7 @@ DWORD APIENTRY Imm32AllocAndBuildHimcList(DWORD dwThreadId, HIMC **pphList)
if (NT_ERROR(Status) || !dwCount) if (NT_ERROR(Status) || !dwCount)
{ {
HeapFree(g_hImm32Heap, 0, phNewList); Imm32HeapFree(phNewList);
return 0; return 0;
} }