Piotr Caban
7555573dc5
msvcrt: Fix restoring 53-bit precision mode in _control87.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52260
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-23 22:57:01 +01:00
Piotr Caban
c521ec04c9
msvcrt: Make _setfp* helpers infallible.
...
The functions may only fail on unsupported compilers/architectures. It's
not really possible to handle errors properly.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-21 13:32:08 +01:00
Piotr Caban
564ede5d32
msvcrt: Don't set _EM_AMBIGOUS flag in _control87 when sse2 is not supported.
...
Fixes compilation warning.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-21 13:32:08 +01:00
Eric Pouech
01111b941d
msvcrt: Fix double-free and memory leak in type_info destructor.
...
Spotted by toying with the gcc's static analyzer.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-16 20:44:27 +01:00
Piotr Caban
2f2891e5d5
msvcrt: Fix _strtime implementation in Hindi locale.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-13 17:58:22 +01:00
Piotr Caban
0e9431b809
msvcrt: Fix _strdate implementation in Hindi locale.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-12-13 17:58:22 +01:00
Piotr Caban
c0ea1ad37d
msvcr100: Add _Timer class implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-30 22:07:21 +01:00
Piotr Caban
acc7907dc9
msvcrt: Skip small-block heap tests if _set_sbh_threshold is not available.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49181
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-19 18:31:38 +01:00
Alexandre Julliard
3ebc80f148
msvcrt: Don't forward itoa() functions to ntdll.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:19:33 +01:00
Alexandre Julliard
68559674e7
msvcrt: Don't forward string functions to ntdll.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-17 15:19:33 +01:00
Thomas Faber
be0684dad5
msvcrt/tests: Show that spawn does not require locking of fds.
...
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 22:42:52 +01:00
Doug Lyons
5a514d3f45
msvcrt: Do not acquire fd lock in msvcrt_create_io_inherit_block.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51647
Signed-off-by: Doug Lyons <douglyons@douglyons.com>
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-12 22:42:52 +01:00
Martin Storsjö
6a072b98c1
msvcrt: Don't set frame to 0 in arm and arm64 setjmp.
...
This matches what was done for x86_64 in
882980c17a
.
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-09 22:02:56 +01:00
Arkadiusz Hiler
04bb9112d2
msvcrt: Increase module's reference count before returning from _beginthread[ex]().
...
Increasing DLL's reference count from the trampoline function makes it
prone to race conditions. The thread can start executing after we have
already returned from _beginthread[ex]() and the DLL might have been
freed.
Fixes rare crash on launch with Baldur's Gate 3.
Signed-off-by: Arkadiusz Hiler <ahiler@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 20:40:09 +01:00
Andrew Eikum
0c6bab9339
msvcrt: Better handle multiple width specifiers.
...
Includes feedback from David Gow <david@davidgow.net> and Piotr Caban.
Signed-off-by: Andrew Eikum <aeikum@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 17:33:56 +01:00
Piotr Caban
00824a94f0
msvcrt: Don't use GetDaylightFlag function in _ftime64.
...
The function is not available on current Windows releases.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51959
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-01 20:45:32 +01:00
Rémi Bernon
7c046c7afd
msvcrt: Write memory forward in memset.
...
Instead of going backward, which breaks the Linux kernel transparent
huge pages allocation assumptions.
This can be reproduced by calling memset on large, newly allocated,
memory regions.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 21:16:29 +02:00
Piotr Caban
e38f3761f8
msvcrt: Rewrite _popen function.
...
Old implementation was not thread safe, incorrectly copied file
descriptors to child process and was leaking parent pipe fd to child
process.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51719
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:53:19 +02:00
Piotr Caban
1420d28cd6
msvcrt: Fix clearing NOINHERIT flag in _dup2.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-25 18:53:10 +02:00
Alexandre Julliard
d8ed47ec21
msvcrt: Use the standard va_list instead of __ms_va_list.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-22 11:12:09 +02:00
Eric Pouech
74a42c5401
msvcrt: Support I width modifier in *scanf* family.
...
Despite what msdn states, I and I32 are supported width modifiers.
Signed-off-by: Eric Pouech <eric.pouech@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-20 20:11:28 +02:00
Piotr Caban
21da1f2f11
ucrtbase: Avoid bool optimization in __std_exception_copy.
...
Otherwise GCC changes do_free = 1 assignment to *dst = *src which breaks
ucrtbase/cpp tests.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 16:02:25 +02:00
Piotr Caban
7a98557352
ucrtbase: Change _isblank_l return value for '\t'.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-18 16:02:03 +02:00
Alexandre Julliard
2a92c58e11
include: Use the standard va_list instead of __ms_va_list when building with msvcrt.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-15 18:28:01 +02:00
Alexandre Julliard
da8176df61
msvcrt: Move _fdclass/_dclass to avoid forward references.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-15 18:28:00 +02:00
Alexandre Julliard
84bfdccf6d
include: Add prototypes for the byteswap functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-13 18:41:02 +02:00
Ted Lyngmo
51b9f4cd2b
ucrtbase: Add support for x mode in fopen.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51846
Signed-off-by: Ted Lyngmo <ted@lyncon.se>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-11 19:43:01 +02:00
Piotr Caban
bb637469e1
msvcrt: Don't crash on NULL in fclose.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-11 19:42:26 +02:00
Alexandre Julliard
97479d3d32
ntdll: Move some exception definitions to winternl.h.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 13:52:42 +02:00
Piotr Caban
5d5f11c002
msvcrt: Support z length modifier in scanf.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-21 11:43:12 +02:00
Alexandre Julliard
088a787a2c
makefiles: Make -mno-cygwin the default.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-20 22:45:48 +02:00
Piotr Caban
2c01333d03
msvcrt: Use unaligned data types in memset.
...
This fixes a regression in memset on ARM described by Martin:
ARM can do 64 bit writes with the STRD instruction, but that
instruction requires a 32 bit aligned address - while these stores
are unaligned.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Martin Storsjö <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-16 22:22:44 +02:00
Nikolay Sivov
0eaa43f6af
msvcrt: Use free() on msvcrt_wstrdupa() results (Coverity).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-15 19:34:23 +02:00
Rémi Bernon
7b17d70815
msvcrt: Improve memset performance using overlapping stores.
...
For n larger than 16 we store 16 bytes on each end of the buffer,
eventually overlapping, and then 16 additional bytes for n > 32.
Then we can find a 32-byte aligned range overlapping the remaining part
of the destination buffer, which is filled 32 bytes at a time in a loop.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-14 21:37:32 +02:00
Francois Gouget
a6b1e97eb6
msvcrt: Remove CDECL on static functions where not needed.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-06 14:52:51 +02:00
Piotr Caban
c306c527e7
msvcrt: Fix _CxxThrowException prototype.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-27 20:25:05 +02:00
Michael Stefaniuc
2d9e89a80f
msvcrt/tests: Remove redundant NULL check before free().
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-26 21:49:08 +02:00
Piotr Caban
5e3f959aed
msvcrt: Simplify throw_exception helper.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:03:33 +02:00
Piotr Caban
1c9a30f217
msvcrt: Move improper_scheduler_detach to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:03:28 +02:00
Piotr Caban
9694fc11fe
msvcrt: Move improper_scheduler_attach to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:01:00 +02:00
Piotr Caban
c9189a411b
msvcrt: Move invalid_scheduler_policy_thread_specification to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:00:57 +02:00
Piotr Caban
a7bbdea089
msvcrt: Move invalid_scheduler_policy_value to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:00:53 +02:00
Piotr Caban
635f59f276
msvcrt: Move invalid_scheduler_policy_key to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:00:49 +02:00
Piotr Caban
a8decf5c15
msvcrt: Move scheduler_resource_allocation_error to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:00:45 +02:00
Piotr Caban
ef81cfb5fb
msvcrt: Move improper_lock implementation to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:00:41 +02:00
Piotr Caban
f6f8b30c47
msvcrt: Introduce macro for creating exception class.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:00:34 +02:00
Piotr Caban
f1fa214b9f
msvcrt: Rename exception::what() implementation to exception_what.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-20 19:00:27 +02:00
Piotr Caban
ce5c989171
msvcrt: Move _Trace_ppl_function to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-18 18:44:11 +02:00
Piotr Caban
69e2467aa7
msvcrt: Move _Trace_agents function to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-18 18:44:03 +02:00
Piotr Caban
3192bb9764
msvcrt: Move lock Concurrency functions to concurrency.c.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-08-18 18:43:59 +02:00