On 2016-12-07 01:10, gadamopou...@svn.reactos.org wrote:
[SHELL32] - Initialize the shell icon cache only when needed or when FileIconInit is called (and not in the DllMain of shell32)
--- trunk/reactos/dll/win32/shell32/iconcache.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/iconcache.cpp [iso-8859-1] Wed Dec 7 00:10:43 2016 @@ -453,6 +453,9 @@ sice.dwSourceIndex = dwSourceIndex; sice.dwFlags = dwFlags; + if (!sic_hdpa) + SIC_Initialize(); + EnterCriticalSection(&SHELL32_SicCS); if (NULL != DPA_GetPtr (sic_hdpa, 0)) @@ -687,6 +690,9 @@ RegCloseKey(hKeyShellIcons); } + if (!sic_hdpa) + SIC_Initialize(); + return SIC_LoadIcon(iconPath, iconIdx, 0); }
This is great. Unfortunately now you have a race condition if multiple of these functions get called concurrently. _______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://www.reactos.org/mailman/listinfo/ros-dev