Skip to content

Commit 90a0532

Browse files
committed
Remove duplicate plugin manager enumeration
1 parent d531531 commit 90a0532

File tree

1 file changed

+15
-18
lines changed

1 file changed

+15
-18
lines changed

ProcessHacker/plugman.c

Lines changed: 15 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
* plugins
44
*
55
* Copyright (C) 2010-2011 wj32
6-
* Copyright (C) 2017-2018 dmex
6+
* Copyright (C) 2017-2021 dmex
77
*
88
* This file is part of Process Hacker.
99
*
@@ -553,12 +553,12 @@ VOID InitializePluginsTree(
553553
_Inout_ PPH_PLUGMAN_CONTEXT Context
554554
)
555555
{
556-
Context->NodeList = PhCreateList(100);
556+
Context->NodeList = PhCreateList(20);
557557
Context->NodeHashtable = PhCreateHashtable(
558558
sizeof(PPH_PLUGIN_TREE_ROOT_NODE),
559559
PluginsNodeHashtableEqualFunction,
560560
PluginsNodeHashtableHashFunction,
561-
100
561+
20
562562
);
563563

564564
Context->NormalFontHandle = PhCreateCommonFont(-10, FW_NORMAL, NULL);
@@ -625,24 +625,21 @@ PWSTR PhpGetPluginBaseName(
625625
}
626626
}
627627

628-
VOID PhpEnumerateLoadedPlugins(
629-
_In_ PPH_PLUGMAN_CONTEXT Context
628+
BOOLEAN NTAPI PhpEnumeratePluginCallback(
629+
_In_ PPH_PLUGIN Information,
630+
_In_opt_ PVOID Context
630631
)
631632
{
632-
PPH_AVL_LINKS links;
633-
634-
for (links = PhMinimumElementAvlTree(&PhPluginsByName); links; links = PhSuccessorElementAvlTree(links))
635-
{
636-
PPH_PLUGIN plugin = CONTAINING_RECORD(links, PH_PLUGIN, Links);
637-
PH_STRINGREF pluginBaseName;
633+
PH_STRINGREF pluginBaseName;
638634

639-
PhInitializeStringRefLongHint(&pluginBaseName, PhpGetPluginBaseName(plugin));
635+
PhInitializeStringRefLongHint(&pluginBaseName, PhpGetPluginBaseName(Information));
640636

641-
if (PhIsPluginDisabled(&pluginBaseName))
642-
continue;
643-
644-
AddPluginsNode(Context, plugin);
637+
if (!PhIsPluginDisabled(&pluginBaseName))
638+
{
639+
AddPluginsNode(Context, Information);
645640
}
641+
642+
return TRUE;
646643
}
647644

648645
INT_PTR CALLBACK PhPluginsDlgProc(
@@ -681,7 +678,7 @@ INT_PTR CALLBACK PhPluginsDlgProc(
681678
PhAddLayoutItem(&context->LayoutManager, GetDlgItem(hwndDlg, IDC_INSTRUCTION), NULL, PH_ANCHOR_BOTTOM | PH_ANCHOR_LEFT);
682679
PhAddLayoutItem(&context->LayoutManager, GetDlgItem(hwndDlg, IDC_DISABLED), NULL, PH_ANCHOR_BOTTOM | PH_ANCHOR_RIGHT);
683680

684-
PhpEnumerateLoadedPlugins(context);
681+
PhEnumeratePlugins(PhpEnumeratePluginCallback, context);
685682
TreeNew_AutoSizeColumn(context->TreeNewHandle, PH_PLUGIN_TREE_COLUMN_ITEM_NAME, TN_AUTOSIZE_REMAINING_SPACE);
686683
PhSetWindowText(GetDlgItem(hwndDlg, IDC_DISABLED), PhaFormatString(L"Disabled Plugins (%lu)", PhpDisabledPluginsCount())->Buffer);
687684

@@ -713,7 +710,7 @@ INT_PTR CALLBACK PhPluginsDlgProc(
713710
);
714711

715712
ClearPluginsTree(context);
716-
PhpEnumerateLoadedPlugins(context);
713+
PhEnumeratePlugins(PhpEnumeratePluginCallback, context);
717714
TreeNew_AutoSizeColumn(context->TreeNewHandle, PH_PLUGIN_TREE_COLUMN_ITEM_NAME, TN_AUTOSIZE_REMAINING_SPACE);
718715
PhSetWindowText(GetDlgItem(hwndDlg, IDC_DISABLED), PhaFormatString(L"Disabled Plugins (%lu)", PhpDisabledPluginsCount())->Buffer);
719716
}

0 commit comments

Comments
 (0)