When a scaffold was being destroyed the currently selected scaffold could become a reference to a destroyed object. This would result in crashes subsequently when the current scaffold was referenced.
The change is simply to ensure the selected scaffold is changed to something valid during destruction.
Will only be enabled if an EABI-aware compiler is used to build
the code. At some point, a suitable copy of ARMEABISupport needs
adding to the supplied !System.400.Modules along with licensing
information in the 3rdParty directory.
The only hand-written asm is the glue to Artworks Render. Update
it to be ABI compliant when building for EABI and force the
alignment of the data in the .bss section (as unaligned rotated
loads are really not a thing).
No functional change for non-EABI builds but, as the stack framing
differs depending on the ABI in use, we can no longer reliably use
fp as the base pointer for on-stack function arguments to
awrender_render. Thus, this has been reworked to use ip as the
pointer instead and to also use r8/r9 to relieve excess register
pressure.
When computing throbber sprite names, ensure the current frame is
in range before using it.
Similarly ensure the buffer size for the temporary URL bar sprite
name is sized such that snprintf has space for the trailing NUL
when formatting it to the output buffer.
Ensure that strings copied using strncpy are NUL terminated.
Additionally, replace use of strncpy entirely where we are writing
into non-indirected OS icon blocks (where an unterminated 12
character long string is perfectly valid).
The new toolchain has a different machine triplet, so update the
things that care about it to work either way.
Remove the expectation that ro-pkg-config exists (it's trivial
and the core buildsystem never used it, so let's have some
consistency).
Determine the location of the zip binary in Makefile.tools, just
like for all the other tooling and stop assuming where it's
installed in the netsurf.zip target.
If RUfl detects it is running in a Wimp task it will display a
progress meter while scanning fonts. We had this behaviour until
~2017, when it became broken due to the font initialisation being
moved before the call to Wimp_Initialise (because the hotlist
display logic got moved to the treeview, which needs fonts set up)
Move both the font and hotlist initialisation after the call to
Wimp_Initialise to restore the desired behaviour.