[PATCH 0/2] MR4689: Fix gitlab pipeline in riched20.
This series should fix gitlab pipeline failures in riched20. Notes: - some tests triggered an exception in KiUserCallbackDispatcher, but it's displayed back to user with ERR on seh channel, which is silenced during gitlab pipeline. Maybe this should still be displayed (eg. with MESSAGE) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689
From: Eric Pouech <epouech(a)codeweavers.com> This was generating a lot of crashes in riched20 tests. Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- dlls/riched20/richole.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dlls/riched20/richole.c b/dlls/riched20/richole.c index 5bc1c30c1f2..51ae41d2fe7 100644 --- a/dlls/riched20/richole.c +++ b/dlls/riched20/richole.c @@ -5799,6 +5799,8 @@ void draw_ole( ME_Context *c, int x, int y, ME_Run *run, BOOL selected ) assert(run->nFlags & MERF_GRAPHICS); assert(run->reobj); + if (!run->reobj->obj.poleobj) return; + if (SUCCEEDED(IOleObject_QueryInterface(run->reobj->obj.poleobj, &IID_IViewObject, (void**)&ivo))) { HRESULT hr; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4689
From: Eric Pouech <epouech(a)codeweavers.com> Signed-off-by: Eric Pouech <epouech(a)codeweavers.com> --- dlls/riched20/editor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dlls/riched20/editor.c b/dlls/riched20/editor.c index 4b246dda9c5..ff05ba60333 100644 --- a/dlls/riched20/editor.c +++ b/dlls/riched20/editor.c @@ -4309,7 +4309,7 @@ int ME_GetTextW(ME_TextEditor *editor, WCHAR *buffer, int buflen, str = get_text( run, 0 ); } /* append '\r' to the last paragraph. */ - if (run == para_end_run( para_prev( editor_end_para( editor ) ) ) && bEOP) + if (run == para_end_run( para_prev( editor_end_para( editor ) ) ) && bEOP && buflen) { *buffer = '\r'; buffer ++; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/4689
This merge request was approved by Jinoh Kang. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689
some tests triggered an exception in KiUserCallbackDispatcher, but it's displayed back to user with ERR on seh channel, which is silenced during gitlab pipeline. Maybe this should still be displayed (eg. with MESSAGE)
FYI, https://gitlab.winehq.org/wine/wine/-/merge_requests/3454 allows you to disable exception-silencing behavior in window procedures. I think this is very useful in both tests and real apps. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689#note_55983
On Thu Dec 14 14:54:57 2023 +0000, Jinoh Kang wrote:
some tests triggered an exception in KiUserCallbackDispatcher, but it's displayed back to user with ERR on seh channel, which is silenced during gitlab pipeline. Maybe this should still be displayed (eg. with MESSAGE) FYI, https://gitlab.winehq.org/wine/wine/-/merge_requests/3454 allows you to disable exception-silencing behavior in window procedures. I think this is very useful in both tests and real apps. Except it's specific to timer procedures. Sorry for the noise.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689#note_55985
Why does it fail on CI, but not when I run it locally? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689#note_55990
it did fail here... good karma on your side I guess? Failure only happens when range_GetChar gets inlined inside ITextSelection_fnGetChar (and later functions local variables where thrashed by the overflow in buffer from the inlined function). (so it could depend on compiler version as well ;-) -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689#note_55997
I was investigating another symptom of this, and it went away with `CFLAGS=-Og`, so it could be something like that. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689#note_56005
This merge request was approved by Huw Davies. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/4689
participants (6)
-
David McFarland (@corngood) -
Eric Pouech -
eric pouech (@epo) -
Huw Davies (@huw) -
Jinoh Kang (@iamahuman) -
Nikolay Sivov (@nsivov)