From 95a14312ca93ab2a673f98a439a8b717ab881037 Mon Sep 17 00:00:00 2001 From: Ged Murphy Date: Mon, 13 Aug 2007 20:20:31 +0000 Subject: [PATCH] Don't overshoot the for loop, fixes a memory leak svn path=/trunk/; revision=28323 --- reactos/dll/cpl/desk/settings.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/reactos/dll/cpl/desk/settings.c b/reactos/dll/cpl/desk/settings.c index 7553da25fb1..2bd296fbeeb 100644 --- a/reactos/dll/cpl/desk/settings.c +++ b/reactos/dll/cpl/desk/settings.c @@ -88,6 +88,7 @@ GetPossibleSettings(IN LPTSTR DeviceName, OUT DWORD* pSettingsCount, OUT PSETTIN PSETTINGS_ENTRY Current; DWORD bpp, xres, yres, checkbpp; + /* Get current settings */ *CurrentSettings = NULL; hDC = CreateIC(NULL, DeviceName, NULL, NULL); @@ -175,11 +176,18 @@ AddDisplayDevice(IN PGLOBAL_DATA pGlobalData, IN LPTSTR Description, IN LPTSTR D newEntry->InitialSettings.dmPelsHeight = newEntry->CurrentSettings->dmPelsHeight; newEntry->InitialSettings.dmBitsPerPel = newEntry->CurrentSettings->dmBitsPerPel; + /* Count different resolutions */ /* Count different resolutions */ for (Current = newEntry->Settings; Current != NULL; Current = Current->Flink) + { if (Current->Flink != NULL && - ((Current->dmPelsWidth != Current->Flink->dmPelsWidth) || (Current->dmPelsHeight != Current->Flink->dmPelsHeight))) + ((Current->dmPelsWidth != Current->Flink->dmPelsWidth) || + (Current->dmPelsHeight != Current->Flink->dmPelsHeight))) + { ResolutionsCount++; + } + } + newEntry->Resolutions = HeapAlloc(GetProcessHeap(), 0, ResolutionsCount * sizeof(RESOLUTION_INFO)); if (!newEntry->Resolutions) goto ByeBye; newEntry->ResolutionsCount = ResolutionsCount;