[PATCH 1/2] msvcp120: Added _Call_once implementation

Piotr Caban piotr.caban at gmail.com
Thu May 21 03:13:00 CDT 2015


On 05/21/15 06:42, Nikolay Sivov wrote:
> On 20.05.2015 23:18, Piotr Caban wrote:
>> ---
>>   dlls/msvcp110/msvcp110.spec         |  4 +--
>>   dlls/msvcp120/msvcp120.spec         |  4 +--
>>   dlls/msvcp120/tests/msvcp120.c      | 55
>> +++++++++++++++++++++++++++++++++++++
>>   dlls/msvcp120_app/msvcp120_app.spec |  4 +--
>>   dlls/msvcp90/misc.c                 | 35 +++++++++++++++++++++++
>>   5 files changed, 96 insertions(+), 6 deletions(-)
>>
>>
>
> You sure it's not a wrapper around InitOnce* calls from kernel32?

Yes, there are few reasons why it can't be used here. The problem is 
that there's no enough space to hold INIT_ONCE structure in first 
argument (that is DWORD sized). Also the test checks if the parameter is 
changed while running the "execute once" function and it's not touched 
until the init function returns. I guess that MicroSoft didn't use the 
function because of compatibility with older operating systems. 
Hopefully they will optimize the function in future versions of msvcp.




More information about the wine-devel mailing list