mirror of
https://github.com/reactos/reactos.git
synced 2025-04-29 10:39:07 +00:00
[SETUPLIB][USETUP] Remove the deprecated GenericListHasSingleEntry() function and use instead GetNumberOfListEntries().
- Few FIXMEs get fixed in the process. - Add some diagnostic ASSERTs.
This commit is contained in:
parent
a635aa8475
commit
a972948051
5 changed files with 24 additions and 39 deletions
|
@ -761,10 +761,7 @@ ProcessComputerFiles(
|
|||
|
||||
Entry = GetCurrentListEntry(List);
|
||||
if (Entry == NULL)
|
||||
{
|
||||
DPRINT("GetCurrentListEntry() failed\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
RtlStringCchPrintfW(SectionName, ARRAYSIZE(SectionName),
|
||||
L"Files.%s", ((PGENENTRY)GetListEntryData(Entry))->Id);
|
||||
|
@ -794,10 +791,7 @@ ProcessDisplayRegistry(
|
|||
|
||||
Entry = GetCurrentListEntry(List);
|
||||
if (Entry == NULL)
|
||||
{
|
||||
DPRINT1("GetCurrentListEntry() failed\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!SetupFindFirstLineW(InfFile, L"Display",
|
||||
((PGENENTRY)GetListEntryData(Entry))->Id,
|
||||
|
|
|
@ -88,7 +88,7 @@ SetCurrentListEntry(
|
|||
IN PGENERIC_LIST List,
|
||||
IN PGENERIC_LIST_ENTRY Entry)
|
||||
{
|
||||
if (Entry->List != List)
|
||||
if (!Entry || (Entry->List != List))
|
||||
return;
|
||||
List->CurrentEntry = Entry;
|
||||
}
|
||||
|
@ -143,16 +143,4 @@ GetNumberOfListEntries(
|
|||
return List->NumOfEntries;
|
||||
}
|
||||
|
||||
BOOLEAN
|
||||
GenericListHasSingleEntry(
|
||||
IN PGENERIC_LIST List)
|
||||
{
|
||||
/*
|
||||
* If both list head pointers (which normally point to the first and last
|
||||
* list member, respectively) point to the same entry then it means that
|
||||
* there is just a single thing in there, otherwise... false!
|
||||
*/
|
||||
return (!IsListEmpty(&List->ListHead) && (List->ListHead.Flink == List->ListHead.Blink));
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -66,8 +66,4 @@ ULONG
|
|||
GetNumberOfListEntries(
|
||||
IN PGENERIC_LIST List);
|
||||
|
||||
BOOLEAN
|
||||
GenericListHasSingleEntry(
|
||||
IN PGENERIC_LIST List);
|
||||
|
||||
/* EOF */
|
||||
|
|
|
@ -356,17 +356,20 @@ DrawGenericListCurrentItem(
|
|||
IN SHORT Left,
|
||||
IN SHORT Top)
|
||||
{
|
||||
//
|
||||
// FIXME: That stuff crashes when the list is empty!!
|
||||
//
|
||||
CHAR CurrentItemText[256];
|
||||
if (GetEntryDescriptionProc)
|
||||
|
||||
if (GetEntryDescriptionProc &&
|
||||
GetNumberOfListEntries(List) > 0)
|
||||
{
|
||||
GetEntryDescriptionProc(GetCurrentListEntry(List),
|
||||
CurrentItemText,
|
||||
ARRAYSIZE(CurrentItemText));
|
||||
CONSOLE_SetTextXY(Left, Top, CurrentItemText);
|
||||
}
|
||||
else
|
||||
{
|
||||
CONSOLE_SetTextXY(Left, Top, "");
|
||||
}
|
||||
}
|
||||
|
||||
VOID
|
||||
|
|
|
@ -508,9 +508,11 @@ LanguagePage(PINPUT_RECORD Ir)
|
|||
SetConsoleCodePage();
|
||||
UpdateKBLayout();
|
||||
|
||||
/* If there's just a single language in the list skip
|
||||
* the language selection process altogether! */
|
||||
if (GenericListHasSingleEntry(LanguageList))
|
||||
/*
|
||||
* If there is no language or just a single one in the list,
|
||||
* skip the language selection process altogether.
|
||||
*/
|
||||
if (GetNumberOfListEntries(LanguageList) <= 1)
|
||||
{
|
||||
USetupData.LanguageId = (LANGID)(wcstol(SelectedLanguageId, NULL, 16) & 0xFFFF);
|
||||
return WELCOME_PAGE;
|
||||
|
@ -564,9 +566,8 @@ LanguagePage(PINPUT_RECORD Ir)
|
|||
}
|
||||
else if (Ir->Event.KeyEvent.uChar.AsciiChar == 0x0D) /* ENTER */
|
||||
{
|
||||
//
|
||||
// FIXME: That stuff crashes when the list is empty!!
|
||||
//
|
||||
ASSERT(GetNumberOfListEntries(LanguageList) >= 1);
|
||||
|
||||
SelectedLanguageId =
|
||||
((PGENENTRY)GetListEntryData(GetCurrentListEntry(LanguageList)))->Id;
|
||||
|
||||
|
@ -591,9 +592,8 @@ LanguagePage(PINPUT_RECORD Ir)
|
|||
|
||||
if (RefreshPage)
|
||||
{
|
||||
//
|
||||
// FIXME: That stuff crashes when the list is empty!!
|
||||
//
|
||||
ASSERT(GetNumberOfListEntries(LanguageList) >= 1);
|
||||
|
||||
NewLanguageId =
|
||||
((PGENENTRY)GetListEntryData(GetCurrentListEntry(LanguageList)))->Id;
|
||||
|
||||
|
@ -897,6 +897,11 @@ UpgradeRepairPage(PINPUT_RECORD Ir)
|
|||
NtOsInstallsList = CreateNTOSInstallationsList(PartitionList);
|
||||
if (!NtOsInstallsList)
|
||||
DPRINT1("Failed to get a list of NTOS installations; continue installation...\n");
|
||||
|
||||
/*
|
||||
* If there is no available installation (or just a single one??) that can
|
||||
* be updated in the list, just continue with the regular installation.
|
||||
*/
|
||||
if (!NtOsInstallsList || GetNumberOfListEntries(NtOsInstallsList) == 0)
|
||||
{
|
||||
RepairUpdateFlag = FALSE;
|
||||
|
@ -961,9 +966,8 @@ UpgradeRepairPage(PINPUT_RECORD Ir)
|
|||
if (toupper(Ir->Event.KeyEvent.uChar.AsciiChar) == 'U') /* U */
|
||||
{
|
||||
/* Retrieve the current installation */
|
||||
//
|
||||
// FIXME: That stuff crashes when the list is empty!!
|
||||
//
|
||||
ASSERT(GetNumberOfListEntries(NtOsInstallsList) >= 1);
|
||||
|
||||
CurrentInstallation =
|
||||
(PNTOS_INSTALLATION)GetListEntryData(GetCurrentListEntry(NtOsInstallsList));
|
||||
|
||||
|
|
Loading…
Reference in a new issue