[PATCH v2] msvcp: Add a stub of _Concurrent_vector_base_v4.

Piotr Caban piotr.caban at gmail.com
Tue May 8 06:43:13 CDT 2018


Hi Hua,

On 05/08/18 13:11, Hua Meng wrote:
> --- a/dlls/msvcp120_app/msvcp120_app.spec
> +++ b/dlls/msvcp120_app/msvcp120_app.spec
> +@ cdecl -arch=win64 ?_Internal_assign at _Concurrent_vector_base_v4@details at Concurrency@@IEAAXAEBV123 at _KP6AXPEAX1@ZP6AX2PEBX1 at Z5@Z(ptr ptr long ptr ptr ptr) msvcp120.
> +@ cdecl -arch=arm ?_Internal_capacity at _Concurrent_vector_base_v4@details at Concurrency@@IBAIXZ(ptr) msvcp120.?_Internal_assign at _Concurrent_vector_base_v4@details at Concurrency@@IEAAXAEBV123 at _KP6AXPEAX1@ZP6AX2PEBX1 at Z5@Z
The _Internal_assign and _Internal_capacity spec file entries got mixed. 
You can use wine_src/tools/make_specfiles script to generate this file.

> +typedef struct
> +{
> +    void *storage[3];
> +    MSVCP_size_t first_block;
> +    MSVCP_size_t early_size;
> +    void **segment;
> +} _Concurrent_vector_base_v4;
This structure needs to have the allocator function pointer as first 
argument. The structure should look like this:
typedef struct
{
     void* (__cdecl *allocator)(_Concurrent_vector_base_v4*, MSVCP_size_t);
     void *storage[3];
     MSVCP_size_t first_block;
     MSVCP_size_t early_size;
     void** segment;
} _Concurrent_vector_base_v4;

> +void __thiscall _Concurrent_vector_base_v4__Internal_resize(
> +        _Concurrent_vector_base_v4 *this, MSVCP_size_t len1, MSVCP_size_t len2,
> +        MSVCP_size_t len3, void (__cdecl *clear)(void *, MSVCP_size_t),
> +        void (__cdecl *copy)(void *, void const *, MSVCP_size_t), void const *v)
> +{
> +    FIXME("%p %ld %ld %ld %p %p %p", this, len1, len2, len3, clear, copy, v);
> +}
Could you please change the fixme message to be consistent (add 
parenthesis and stub)?

Thanks,
Piotr



More information about the wine-devel mailing list