https://git.reactos.org/?p=reactos.git;a=commitdiff;h=cba0d6464534227726af9a...
commit cba0d6464534227726af9a310c03772923930aa0 Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Wed Apr 21 18:18:41 2021 +0200 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org CommitDate: Wed May 5 17:24:10 2021 +0200
[SYSDM][USERINIT] Fix uninitialized variables warnings detected by Clang. (#3619) CORE-17545
Addendum to commit d635ce0c.
- Move the HDC variables initialization via function calls, out of the variables declaration block.
- Fix warnings (and identical for base/system/userinit/livecd.c):
dll/cpl/sysdm/general.c:72:9: warning: variable 'hLogo' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (hDC == NULL || hDCLogo == NULL || hDCMask == NULL) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dll/cpl/sysdm/general.c:130:9: note: uninitialized use occurs here if (hLogo != NULL) DeleteObject(hLogo); ^~~~~
and similar for hMask too:
dll/cpl/sysdm/general.c:129:9: note: uninitialized use occurs here if (hMask != NULL) DeleteObject(hMask); ^~~~~ --- base/system/userinit/livecd.c | 11 +++++++---- dll/cpl/sysdm/general.c | 11 +++++++---- 2 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/base/system/userinit/livecd.c b/base/system/userinit/livecd.c index 40626609402..216579f427b 100644 --- a/base/system/userinit/livecd.c +++ b/base/system/userinit/livecd.c @@ -27,13 +27,16 @@ InitLogo(PIMGINFO pImgInfo, HWND hwndDlg) BITMAP logoBitmap; BITMAP maskBitmap; BITMAPINFO bmpi; - HDC hDC = GetDC(hwndDlg); - HDC hDCLogo = CreateCompatibleDC(NULL); - HDC hDCMask = CreateCompatibleDC(NULL); - HBITMAP hMask, hLogo, hAlphaLogo = NULL; + HDC hDC, hDCLogo, hDCMask; + HBITMAP hMask = NULL, hLogo = NULL; + HBITMAP hAlphaLogo = NULL; COLORREF *pBits; INT line, column;
+ hDC = GetDC(hwndDlg); + hDCLogo = CreateCompatibleDC(NULL); + hDCMask = CreateCompatibleDC(NULL); + if (hDC == NULL || hDCLogo == NULL || hDCMask == NULL) goto Cleanup;
diff --git a/dll/cpl/sysdm/general.c b/dll/cpl/sysdm/general.c index d43a75cf4e7..746c8235b16 100644 --- a/dll/cpl/sysdm/general.c +++ b/dll/cpl/sysdm/general.c @@ -62,13 +62,16 @@ static VOID InitLogo(HWND hwndDlg) BITMAP logoBitmap; BITMAP maskBitmap; BITMAPINFO bmpi; - HDC hDC = GetDC(hwndDlg); - HDC hDCLogo = CreateCompatibleDC(NULL); - HDC hDCMask = CreateCompatibleDC(NULL); - HBITMAP hMask, hLogo, hAlphaLogo = NULL; + HDC hDC, hDCLogo, hDCMask; + HBITMAP hMask = NULL, hLogo = NULL; + HBITMAP hAlphaLogo = NULL; COLORREF *pBits; INT line, column;
+ hDC = GetDC(hwndDlg); + hDCLogo = CreateCompatibleDC(NULL); + hDCMask = CreateCompatibleDC(NULL); + if (hDC == NULL || hDCLogo == NULL || hDCMask == NULL) goto Cleanup;