diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c index 7d0aeb50ae1..bed77cae553 100644 --- a/dlls/comctl32/header.c +++ b/dlls/comctl32/header.c @@ -131,17 +131,16 @@ static void HEADER_StoreHDItemInHeader(HEADER_ITEM *lpItem, HDITEMW *phdi, BOOL if (phdi->mask & HDI_TEXT) { + if (lpItem->pszText) + { + if (lpItem->pszText != emptyString && lpItem->pszText != LPSTR_TEXTCALLBACKW) + Free(lpItem->pszText); + lpItem->pszText = NULL; + } + if (phdi->pszText != LPSTR_TEXTCALLBACKW) /* covers != TEXTCALLBACKA too */ { - LPWSTR pszText; - if (lpItem->pszText) - { - if (lpItem->pszText != emptyString && lpItem->pszText != LPSTR_TEXTCALLBACKW) - Free(lpItem->pszText); - lpItem->pszText = NULL; - } - - pszText = (phdi->pszText != NULL ? phdi->pszText : emptyString); + LPWSTR pszText = (phdi->pszText != NULL ? phdi->pszText : emptyString); if (fUnicode) Str_SetPtrW(&lpItem->pszText, pszText); else