While armv7 generally tolerates unaligned loads/stores in most
cases, the compiler is free to use the ldrd/strd instructions,
for loading/storing two consecutive 32 bit registers, and this
requires the destination to be aligned to a 4 byte boundary.
When packing a number of variable length structures, make sure
that each actual struct gets aligned at the right address
boundary.
This fixes crashes in DllMain of wineps.drv, when built for
armv7, since 351e58dc2d.
Signed-off-by: Martin Storsjö <martin@martin.st>
geometry->fill.bezier_vertices was being freed on the failed path in
d2d_geometry_sink_Close and then again when the path geometry was
released (in d2d_geometry_cleanup).
By setting it to NULL after freeing it initially, all other calls
to free it are a no-op.
This fixes a rendering issue (and ultimately a crash) in PowerPoint when
compiling with GCC 8.
GCC8 doesn't support the `excess-precision=standard` option under the
`#pragma GCC optimize` directive.
This results in unpredictable floating point rounding leading to errors
when inserting segments (with missing edges and/or triangles).
Using 24-bit precision ensures we don't have any excess precision.
Dvorak detection would sometimes fallback to Phantom keys, because we
only use seq as a tie breaker greater emphasis on locality is required
for layouts using the same language.
Signed-off-by: Daniel Hill <daniel@gluo.nz>
This make dvorak more consistent with X11/Wayland/Windows, qwertz and
azerty layouts having the same physical scancode layout as a qwerty
keyboard and only differing in the labels on the keycaps.
Signed-off-by: Daniel Hill <daniel@gluo.nz>
Since recently, unwinding never should need to look at the
unix libs any longer, and as aarch64 requires PE builds, there
should be no need to unwind through any .dll.so files any
longer.
Signed-off-by: Martin Storsjö <martin@martin.st>
Building for ARM with libunwind available has been broken
since 89f3c59739, due to
references to raise_func_trampoline that were left behind.
In Linux builds, libunwind isn't practically needed since
a27b202a4d (which implemented an
internal EHABI unwinder). That unwinder currently only supports
Linux, due to relying on dl_iterate_phdr, but if necessary, we
could also try to detect support for dl_iterate_phdr in configure
for other OSes.
Signed-off-by: Martin Storsjö <martin@martin.st>
Libunwind hasn't been necessary for unwinding through the ELF
bits since 03d4ba67f4.
This reduces the number of potential build configurations to
keep track of.
Signed-off-by: Martin Storsjö <martin@martin.st>
Once we've reached the condition for skipping a core, we will
skip all other cores in the same range as well - don't print
a fixme message for each of them.
Signed-off-by: Martin Storsjö <martin@martin.st>