tdf#39593 vcl: extract SysColor list deletion

Change-Id: I7d1b319a1cf551e1fd6b67f13f738ab42df1b77d
Reviewed-on: https://gerrit.libreoffice.org/64591
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/vcl/win/gdi/salgdi.cxx b/vcl/win/gdi/salgdi.cxx
index c1ec8bd..da06dc9 100644
--- a/vcl/win/gdi/salgdi.cxx
+++ b/vcl/win/gdi/salgdi.cxx
@@ -54,6 +54,24 @@
static SysColorEntry* pFirstSysColor = nullptr;
static SysColorEntry* pActSysColor = nullptr;

namespace
{

void DeleteSysColorList()
{
    SysColorEntry* pEntry = pFirstSysColor;
    pActSysColor = pFirstSysColor = nullptr;

    while( pEntry )
    {
        SysColorEntry* pTmp = pEntry->pNext;
        delete pEntry;
        pEntry = pTmp;
    }
}

} // namespace

// Blue7
static PALETTEENTRY aImplExtraColor1 =
{
@@ -315,15 +333,7 @@
        delete[] pSalData->mpDitherHigh;
    }

    // delete SysColorList
    SysColorEntry* pEntry = pFirstSysColor;
    while( pEntry )
    {
        SysColorEntry* pTmp = pEntry->pNext;
        delete pEntry;
        pEntry = pTmp;
    }
    pFirstSysColor = nullptr;
    DeleteSysColorList();

    // delete icon cache
    SalIcon* pIcon = pSalData->mpFirstIcon;
@@ -409,15 +419,7 @@

void ImplUpdateSysColorEntries()
{
    // delete old SysColorList
    SysColorEntry* pEntry = pFirstSysColor;
    while( pEntry )
    {
        SysColorEntry* pTmp = pEntry->pNext;
        delete pEntry;
        pEntry = pTmp;
    }
    pActSysColor = pFirstSysColor = nullptr;
    DeleteSysColorList();

    // create new sys color list
    ImplInsertSysColorEntry( COLOR_ACTIVEBORDER );