diff options
Diffstat (limited to 'Plugins/extraicons/usedIcons.cpp')
-rw-r--r-- | Plugins/extraicons/usedIcons.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/Plugins/extraicons/usedIcons.cpp b/Plugins/extraicons/usedIcons.cpp index 9726381..de58069 100644 --- a/Plugins/extraicons/usedIcons.cpp +++ b/Plugins/extraicons/usedIcons.cpp @@ -83,29 +83,28 @@ HANDLE AddIcon(const char *icolibName) void RemoveIcon(const char *icolibName)
{
- for (vector<Icon>::iterator it = usedIcons.begin(); it != usedIcons.end(); it++)
+ for (unsigned int i = 0; i < usedIcons.size(); ++i)
{
- Icon *icon = &*it;
+ Icon *icon = &usedIcons[i];
if (icon->name != icolibName)
continue;
icon->refCount--;
-
break;
}
}
+static bool NotUsedIcon(const Icon &icon)
+{
+ return icon.refCount <= 0;
+}
+
void ResetIcons()
{
- for (vector<Icon>::iterator it = usedIcons.begin(); it != usedIcons.end(); it++)
- {
- Icon *icon = &*it;
+ usedIcons.erase(std::remove_if(usedIcons.begin(), usedIcons.end(), NotUsedIcon), usedIcons.end());
- if (icon->refCount <= 0)
- usedIcons.erase(it);
- else
- icon->hImage = NULL;
- }
+ for (unsigned int i = 0; i < usedIcons.size(); ++i)
+ usedIcons[i].hImage = NULL;
}
|