HI,

Ok, so I have an ugly patched attached.  This fixes the ArmV8 crashes in MVC when you scroll.  You can trigger the crash by creating a MVC project, and then within opening a workspace.  Enter one line of text and keep hitting return until the text scrolls off the screen.  Grab the scroll bar and scroll back.  Segfault.

The function that is failing is fastPathBottomToTop in platforms/Cross/plugins/BitBltPlugin/BitBltGeneric.c

The code works unoptimised, but fails with the C optimiser turned on on Gcc 10.2 and gcc 7.5.0.  The code looks fine to me, so, either I don't see it or this is one of those worked in the past when the C optimisers did not take advantage of "oh look, that is undefined, so I will do what I wish."

My patch just bypasses the fast path in fastPathBottomToTop and forces the slower path.  The only place this seemed to be used is MVC when you do big scrolling.  I don't notice any obvious slowdowns even on a slow PI 3.

I think this patch should be included in the 6.0 release because I am biased by works but a touch slower vs segfaults.

Thanks.

bruce


On 2022-02-16T20:16:03.000+01:00, Marcel Taeumel <marcel.taeumel@hpi.de> wrote:
Hi --

"Form over" blitting rule is not used much in Morphic anymore.

Here are is something you can try to see if it crashes in Morphic:

   HandMorph showEvents: false. "Still uses Form over"

Here are some things you can do to use another blitting rule in MVC:

   TextConstants at: #DefaultRule put: Form blend. "was: Form over"

Maybe this stops the crashes. :-) Please report back.

Best,
Marcel