Piotr Caban : msvcp100: Add _Concurrent_queue_base_v4 constructor implementation.
Alexandre Julliard
julliard at winehq.org
Tue Jan 23 16:09:50 CST 2018
Module: wine
Branch: master
Commit: 8d9c48171cf1ad83e92ac93d2b6abcbffd683786
URL: https://source.winehq.org/git/wine.git/?a=commit;h=8d9c48171cf1ad83e92ac93d2b6abcbffd683786
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Jan 23 17:03:00 2018 +0100
msvcp100: Add _Concurrent_queue_base_v4 constructor implementation.
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msvcp90/misc.c | 20 ++++++++++++++++++--
1 file changed, 18 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c
index c7fd041..ac6de38 100644
--- a/dlls/msvcp90/misc.c
+++ b/dlls/msvcp90/misc.c
@@ -1234,6 +1234,8 @@ typedef struct
MSVCP_size_t item_size;
} _Concurrent_queue_base_v4;
+extern const vtable_ptr MSVCP__Concurrent_queue_base_v4_vtable;
+
/* ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IBEXXZ */
/* ?_Internal_throw_exception at _Concurrent_queue_base_v4@details at Concurrency@@IEBAXXZ */
DEFINE_THISCALL_WRAPPER(_Concurrent_queue_base_v4__Internal_throw_exception, 4)
@@ -1250,8 +1252,22 @@ DEFINE_THISCALL_WRAPPER(_Concurrent_queue_base_v4_ctor, 8)
_Concurrent_queue_base_v4* __thiscall _Concurrent_queue_base_v4_ctor(
_Concurrent_queue_base_v4 *this, MSVCP_size_t size)
{
- FIXME("(%p %ld) stub\n", this, size);
- return NULL;
+ TRACE("(%p %ld)\n", this, size);
+
+ this->data = MSVCRT_operator_new(sizeof(*this->data));
+ memset(this->data, 0, sizeof(*this->data));
+
+ this->vtable = &MSVCP__Concurrent_queue_base_v4_vtable;
+ this->item_size = size;
+
+ /* alloc_count needs to be power of 2 */
+ this->alloc_count =
+ size <= 8 ? 32 :
+ size <= 16 ? 16 :
+ size <= 32 ? 8 :
+ size <= 64 ? 4 :
+ size <= 128 ? 2 : 1;
+ return this;
}
/* ??1_Concurrent_queue_base_v4 at details@Concurrency@@MAE at XZ */
More information about the wine-cvs
mailing list