EDuke32 Changelog Archivio non ufficiale

Build 4069

21 settembre 2013 · 4 commit di 1 autore · SVN

Build per mese 110 build

File di log originale · 20130921-4069.txt
------------------------------------------------------------------------
r4069 | helixhorned | 2013-09-21 06:38:56 -0700 (Sat, 21 Sep 2013) | 6 lines

In C++ build, fix "narrowing conversion inside { } is ill-formed" warning.

This also exposes an actual issue. The sound definitions may be dynamically
remapped, in which case they are not necessarily <=255 any more.

BUILD_LUNATIC.
------------------------------------------------------------------------
r4068 | helixhorned | 2013-09-21 06:38:44 -0700 (Sat, 21 Sep 2013) | 14 lines

Prevent calling function pointers cast to an incompatible type.

Most often, this had happened when casting comparison functions for qsort()
like these: "int yax_cmpbunches(const int16_t *b1, const int16_t *b2)"
to a function pointer type expecting "const void *". Alas, this is undefined
behavior: see
http://blog.frama-c.com/index.php?post/2013/08/24/Function-pointers-in-C
and posts linked from it.

At least two cases have not been fixed:
- The savegame system maintains pointers which are either to data or a function in
  the generic "void *". This ought to be made into a union.
- Probably also:
  #define OSD_ALIAS     (int32_t (*)(const osdfuncparm_t*))0x1337
------------------------------------------------------------------------
r4067 | helixhorned | 2013-09-21 06:38:07 -0700 (Sat, 21 Sep 2013) | 1 line

Minor changes for Lunatic utils, replace missed sound flag literals with macros.
------------------------------------------------------------------------
r4066 | helixhorned | 2013-09-21 06:37:31 -0700 (Sat, 21 Sep 2013) | 5 lines

Add WIP x86_64 assembly texture mapping routines.

- Currently: only tvlineasm1 and tvlineasm2, but incomplete (no reverse
  translucency, nonpow2 textures will crash)
- For System V AMD64 calling conventions; requires YASM
------------------------------------------------------------------------
Fix

In C++ build, fix "narrowing conversion inside { } is ill-formed" warning.

Philipp Kutin (Helixhorned) 21 set 2013, 06:38 UTC−7 r4069

This also exposes an actual issue. The sound definitions may be dynamically remapped, in which case they are not necessarily <=255 any more. BUILD_LUNATIC.

Fix

Prevent calling function pointers cast to an incompatible type.

Philipp Kutin (Helixhorned) 21 set 2013, 06:38 UTC−7 r4068

Most often, this had happened when casting comparison functions for qsort() like these: "int yax_cmpbunches(const int16_t *b1, const int16_t *b2)" to a function pointer type expecting "const void *". Alas, this is undefined behavior: see http://blog.frama-c.com/index.php?post/2013/08/24/Function-pointers-in-C and posts linked from it. At least two cases have not been fixed: - The savegame system maintains pointers which are either to data or a function in the generic "void *". This ought to be made into a union. - Probably also: #define OSD_ALIAS (int32_t (*)(const osdfuncparm_t*))0x1337

Fix

Add WIP x86_64 assembly texture mapping routines.

Philipp Kutin (Helixhorned) 21 set 2013, 06:37 UTC−7 r4066

- Currently: only tvlineasm1 and tvlineasm2, but incomplete (no reverse translucency, nonpow2 textures will crash) - For System V AMD64 calling conventions; requires YASM