comctl32/monthcal: Fix memory leak on MCN_GETDAYSTATE notification.

This commit is contained in:
Nikolay Sivov 2009-09-26 15:55:27 +04:00 committed by Alexandre Julliard
parent 818aab58f5
commit e3a7c6c7e7
1 changed files with 11 additions and 8 deletions

View File

@ -1233,7 +1233,7 @@ static void MONTHCAL_GoToNextMonth(MONTHCAL_INFO *infoPtr)
if(infoPtr->dwStyle & MCS_DAYSTATE) {
NMDAYSTATE nmds;
int i;
INT i;
nmds.nmhdr.hwndFrom = infoPtr->hwndSelf;
nmds.nmhdr.idFrom = GetWindowLongPtrW(infoPtr->hwndSelf, GWLP_ID);
@ -1249,6 +1249,8 @@ static void MONTHCAL_GoToNextMonth(MONTHCAL_INFO *infoPtr)
SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, nmds.nmhdr.idFrom, (LPARAM)&nmds);
for(i = 0; i < infoPtr->monthRange; i++)
infoPtr->monthdayState[i] = nmds.prgDayState[i];
Free(nmds.prgDayState);
}
}
@ -1265,14 +1267,13 @@ static void MONTHCAL_GoToPrevMonth(MONTHCAL_INFO *infoPtr)
if(infoPtr->dwStyle & MCS_DAYSTATE) {
NMDAYSTATE nmds;
int i;
INT i;
nmds.nmhdr.hwndFrom = infoPtr->hwndSelf;
nmds.nmhdr.idFrom = GetWindowLongPtrW(infoPtr->hwndSelf, GWLP_ID);
nmds.nmhdr.code = MCN_GETDAYSTATE;
nmds.cDayState = infoPtr->monthRange;
nmds.prgDayState = Alloc
(infoPtr->monthRange * sizeof(MONTHDAYSTATE));
nmds.prgDayState = Alloc(infoPtr->monthRange * sizeof(MONTHDAYSTATE));
nmds.stStart = infoPtr->todaysDate;
nmds.stStart.wYear = infoPtr->curSel.wYear;
@ -1282,6 +1283,8 @@ static void MONTHCAL_GoToPrevMonth(MONTHCAL_INFO *infoPtr)
SendMessageW(infoPtr->hwndNotify, WM_NOTIFY, nmds.nmhdr.idFrom, (LPARAM)&nmds);
for(i = 0; i < infoPtr->monthRange; i++)
infoPtr->monthdayState[i] = nmds.prgDayState[i];
Free(nmds.prgDayState);
}
}