EDuke32 Changelog Unofficial archive

Build 4069

21 September 2013 · 4 commits by 1 author · SVN

Builds by month 214 builds

  1. Jan

  2. Feb

  3. Mar

  4. Apr

  5. May

  6. Jun

  7. Jul

  8. Aug

  9. Sep

  10. Oct

  11. Nov

  12. Dec

Original log file · 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 Sep 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 Sep 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 Sep 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