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(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAAXAEBV123(a)_KP6AXPEAX1@ZP6AX2PEBX1(a)Z5@Z(ptr ptr long ptr ptr ptr) msvcp120. +@ cdecl -arch=arm ?_Internal_capacity(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IBAIXZ(ptr) msvcp120.?_Internal_assign(a)_Concurrent_vector_base_v4@details(a)Concurrency@@IEAAXAEBV123(a)_KP6AXPEAX1@ZP6AX2PEBX1(a)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