Commit Graph

139231 Commits

Author SHA1 Message Date
Paul Gofman eb7f784761 ntoskrnl.exe: Implement IoReuseIrp() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:46:16 +02:00
Paul Gofman 9effc3f963 ntoskrnl.exe: Add stub for ExUnregisterCallback() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:46:09 +02:00
Paul Gofman 7bc99ae125 ntoskrnl.exe: Add stub for ExRegisterCallback() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:46:04 +02:00
Paul Gofman 1cad86fced ntoskrnl.exe: Return STATUS_SUCCESS from ExCreateCallback() stub.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:59 +02:00
Paul Gofman 4ae92fdaf6 ntoskrnl.exe: Fix ObRegisterCallbacks() function parameter definition.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:55 +02:00
Ziqing Hui 9a6108cf43 windowscodecs: Implement DdsFrameDecode_GetSize().
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:36 +02:00
Ziqing Hui 870b08b7fd windowscodecs: Implement DdsDecoder_Dds_GetFrame().
DdsDecoder_GetFrame() is implemented on top of DdsDecoder_Dds_GetFrame().

Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:34 +02:00
Ziqing Hui ab0d2b1434 windowscodecs: Get DDS parameters when initialize.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:32 +02:00
Serge Gautherie e4e5eda3d9 mscoree: RegQueryValueExW() wants bytes, not chars.
Signed-off-by: Serge Gautherie <winehq-git_serge_180711@gautherie.fr>
Signed-off-by: Esme Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:29 +02:00
Jacek Caban 10257a9417 gdiplus/tests: Introduce compare_uint helper.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Esme Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-29 10:45:24 +02:00
Jacek Caban f6595bbdff mshtml: Add IHTMLTableCell::width property implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 23:48:13 +02:00
Jacek Caban 0702f06177 mshtml: Add IHTMLTableCell::height property implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 23:48:07 +02:00
Jacek Caban 0dfc101e17 mshtml: Use return_nsstr_variant in HTMLTable_get_width.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 23:48:00 +02:00
Aaro Altonen 93dfc9b60e msado15: Add IConnectionPointContainer stub to _Connection.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49272
Signed-off-by: Aaro Altonen <a.altonen@hotmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 23:46:59 +02:00
Paul Gofman 6870f13704 ntoskrnl.exe/tests: Add more timer tests.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman a4a903f97a ntoskrnl.exe: Support DPCs with timers.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman 6cb3588969 ntoskrnl.exe: Cancel active timer before setting it.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman 4584ffadda ntoskrnl.exe: Avoid leaking events on multipe KeSetTimerEx() calls.
As the consequent testing shows we can't just close the events on timer
reset. That would result in wrong wait results for current waiters.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman 68a03b6393 ntoskrnl.exe: Reimplement KeSetTimerEx() on top of thread pool.
This is needed to call the DPC callbacks later as SetWaitableTimer()
will call the callback only when the thread is in alertable
wait state.

Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman ba98574207 ntoskrnl.exe: Add KeSetTimer() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman e49be2db28 ntoskrnl.exe: Partially implement KeInitializeDpc() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo e0c8c4c3cd ntdll: Implement RtlRaiseException in assembly to fix continuing from exceptions.
If the handlers returned ExceptionContinueExecution and we restore
the stored context, make sure it's a context that ends up returning
from the RtlRaiseException function.

This matches how it's done on x86_64.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo 763f15ccde ntdll: Fix unwinding through raise_generic_exception.
Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo a8a944c220 ntdll: Keep the previous iteration of NonVolatileRegisters in call_function_handlers.
Some language specific handlers, called by call_handler, can use
the NonVolatileRegisters to restore the context before running
code, and that assumes that NonVolatileRegisters contains the frame
pointer as it was within the function (before unwinding).

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo 6c11d1d745 ntdll: Implement RtlRestoreContext.
Call the consolidate frame callback before resuming. Before
calling the callback, fill in ExceptionInformation[10] with the
equivalent of dispatch.NonVolatileRegisters.

This fixes unwinding of MSVC C++ exceptions in a lot of cases.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo c22e8645b0 wine/asm.h: Use __ASM_CFI on clang too, despite not defining __GCC_HAVE_DWARF2_CFI_ASM.
It has already been unconditionally enabled for macOS (which uses clang).

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo babbf352b6 ntdll: Fix unwinding functions that end with a branch instruction.
This happens with functions that aren't intended to return e.g. like
_Unwind_Resume. In these cases, the return address is outside of the
function (the first instruction in the next function).

Set the flag CONTEXT_UNWOUND_TO_CALL after unwinding to a callsite,
and if this flag is set, look up a RUNTIME_FUNCTION based on
Control.Pc - 4.

This isn't a complete (nor probably entirely correct) implementation
of the flag CONTEXT_UNWOUND_TO_CALL, but it practically seems to
work fine and fixes a large number of unwinding cases.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo 42a5885669 ntdll: Store the real stack pointer in RtlCaptureContext.
In most cases, unwinding will use the frame pointer anyway, so it
doesn't make much of a difference, but for cases where it won't,
capture the actual stack pointer.

(In most cases on arm64, calling the RtlCaptureContext won't cause
anything extra to be pushed on the stack at that point anyway).

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo 8e4f0b2a15 ntdll: Pass a nonnull handler_data in when continuing after a collided unwind.
This matches what was done for RtlUnwindEx in
93ecc54ae5, applying the same change
in call_function_handlers (when called from raise_exception).

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo d6e9795223 ntdll: Fix byte vs register units in unwind_packed_data.
restore_regs and restore_fpregs take offsets in units of registers,
not bytes.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo 8477f61b9f ntdll: Fix handling of the save_lrpair unwind opcode.
The register offset should be multiplied by 2, and the second
register is always Lr.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Martin Storsjo ad7fcd2c40 configure: Pass -fasynchronous-unwind-tables to the compiler.
On aarch64-linux-gnu, unwind tables aren't emitted by default (contrary
to x86_64-linux-gnu), so we must pass the flag (or -funwind-tables)
to the compiler to make it generate them.

Previously wine just added the flag to the linker options.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Jacek Caban f9e9ef36fa d3d9/tests: Use int for indexes in generate_bumpmap_textures.
Fixes -Wabsolute-value warning.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman 3aa53f328c wined3d: Allow multisample source locations for all colour blits.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman 826cee41a7 wined3d: Allow multisample destination locations for all colour blits.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman c0ab55700f wined3d: Prepare/load the destination resource location in glsl_blitter_blit().
Like the other blitters. When the GLSL blitter was introduced, the idea was
that caller would be responsible for doing this, but we never ended up
updating the other blitters.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=49251
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Paul Gofman a389f32967 wined3d: Use a single wined3d_texture_is_full_rect() function.
Signed-off-by: Paul Gofman <pgofman@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Zhiyi Zhang 079caeaa8d ddraw: Get new window size from the primary output after display mode changes.
MonitorFromWindow() may return a different monitor if switching to a
smaller display mode.

Fix Railroad Tycoon II crashes.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov 8805f0429e mfmediaengine: Keep loop flag.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov e5b25e874e mfmediaengine: Keep auto-play flag.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov 5007c2bd36 mfmediaengine: Add shut down state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov a8ee0575fd mfmediaengine/tests: Add some tests for shutdown state.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov 9de7895e4e mfmediaengine/tests: Use global factory instance.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov e2c681a897 include: Add Media Engine events constants.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov 9479f87b8a dwrite: Add stub handler for ligature substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov 2e4d71c721 dwrite: Update glyph component count on multiple substitution.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov 9f31bf0e1c dwrite: Implement multiple substitution (GSUB lookup 2).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:32 +02:00
Nikolay Sivov 684dd31cc2 dwrite: Use GPOS handlers for subtables, not whole lookups.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:31 +02:00
Nikolay Sivov a66668c129 dwrite: Keep text properties zero initialized.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:31 +02:00
Brendan Shanks b582ab26f9 winemac.drv: Set output id property for monitors.
Signed-off-by: Brendan Shanks <bshanks@codeweavers.com>
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-05-28 20:18:31 +02:00