EDuke32 Changelog Archivio non ufficiale

Build 4017

12 agosto 2013 · 16 commit di 1 autore · SVN

Build per mese 138 build

  1. gen

  2. feb

  3. mar

  4. apr

  5. mag

  6. giu

  7. lug

  8. ago

  9. set

  10. ott

  11. nov

  12. dic

File di log originale · 20130812-4017.txt
------------------------------------------------------------------------
r4017 | helixhorned | 2013-08-12 08:18:22 -0700 (Mon, 12 Aug 2013) | 6 lines

polymer.c: remove redundant NULL pointer check in polymer_invalidateplanelights().

Redundant for the same reason as the preceding one: the pointer has already
been dereferenced at the point the check is made. Also, all 5 calls of that
function pass a valid pointer (provided the pointers from which the expressions
are derived are valid). Reported by Stack, too.
------------------------------------------------------------------------
r4016 | helixhorned | 2013-08-12 08:18:20 -0700 (Mon, 12 Aug 2013) | 8 lines

game.c: remove dead bounds check for cheatbuf[], add assertion.

The check is dead because it is made after the fact (oob access), but the
cheat string matching logic below actually assures that
cheatbuflen < sizeof(cheatbuf) at all times.
Exposed using the Stack tool from http://css.csail.mit.edu/stack/ .
Also, in gamedef.c's definecheat handling, print the string length (19), not
the buffer length (20) if the cheat was truncated.
------------------------------------------------------------------------
r4015 | helixhorned | 2013-08-12 08:18:19 -0700 (Mon, 12 Aug 2013) | 1 line

When issuing "setrendmode" OSD command with mismatched vidmode, auto-switch.
------------------------------------------------------------------------
r4014 | helixhorned | 2013-08-12 08:18:18 -0700 (Mon, 12 Aug 2013) | 15 lines

Fix taking address out of bounds of stack'd array, introduced in r3983.

Clang's UBSan reports this as undefined behavior. I think that the reason
is as follows: C99 6.5.3.2#1 (Constraints) says:

 The operand of the unary & operator shall be either a function designator, the
 result of a [] or unary * operator, or an lvalue that designates an object that
 is not a bit-field and is not declared with the register storage-class specifier.

But in case of an expression like "&array[-1]", the operand ("array[-1]") does
not designate a valid object.

Moral: check first -- assure that an expression is valid for a particular
operation before carrying it out. Keep in mind that otherwise, the compiler
is absolutely free to optimize out the *check*.
------------------------------------------------------------------------
r4013 | helixhorned | 2013-08-12 08:18:16 -0700 (Mon, 12 Aug 2013) | 1 line

baselayer.c: remove baselayer_onvideomodechange, onvideomodechange.
------------------------------------------------------------------------
r4012 | helixhorned | 2013-08-12 08:18:15 -0700 (Mon, 12 Aug 2013) | 4 lines

Mapster32/non-Lua: don't keep tags used for TROR nextwalls when c&p-ing sector.

Again, in case a bunch is discarded. The tags would appear as really tagging
the walls instead of being "hidden".
------------------------------------------------------------------------
r4011 | helixhorned | 2013-08-12 08:18:13 -0700 (Mon, 12 Aug 2013) | 4 lines

Mapster32/Lunatic: clear bunchnum and TROR nextwalls when c&p-ing sectors.

That is, if a bunch is discarded when copying a sector to the clipboard.
(This happens if not all sectors that are part of the bunch are copied.)
------------------------------------------------------------------------
r4010 | helixhorned | 2013-08-12 08:18:12 -0700 (Mon, 12 Aug 2013) | 3 lines

Polymost: fix my r_usetileshades==2 sub-method.

Don't touch TerminX's r_usetileshades==1 or it being the default.
------------------------------------------------------------------------
r4009 | helixhorned | 2013-08-12 08:18:11 -0700 (Mon, 12 Aug 2013) | 1 line

checkdefs.sh: check first and second args, handle definelevelname.
------------------------------------------------------------------------
r4008 | helixhorned | 2013-08-12 08:18:10 -0700 (Mon, 12 Aug 2013) | 4 lines

net.c: move a necessary bound check to BEFORE the oob access happening.

Fixes the undefined behavior discussed here:
http://forums.duke4.net/topic/3857-the-crash-thread/page__view__findpost__p__152612
------------------------------------------------------------------------
r4007 | helixhorned | 2013-08-12 08:18:05 -0700 (Mon, 12 Aug 2013) | 7 lines

Mapster32: Clean up "show height indicators" mode.

- For setting 1, don't draw them for red walls whose sector floors have equal
  height.
- Make setting 1 the default, because I consider drawing them for such walls
  (and white walls) noise (as opposed to information). The "verbose" setting 2
  is still available.
------------------------------------------------------------------------
r4006 | helixhorned | 2013-08-11 08:28:51 -0700 (Sun, 11 Aug 2013) | 3 lines

Retire MultiPsky_TileToIdx() in favor of engine-side getpskyidx().

DONT_BUILD, because there have been no significant changes of the non-Lua build.
------------------------------------------------------------------------
r4005 | helixhorned | 2013-08-11 08:28:50 -0700 (Sun, 11 Aug 2013) | 4 lines

Lunatic util: add foreachmap module 'plax', looking for maps w/ multiple psky tiles.

In foreachmap.lua, make init() be able to return a start index for cmdline args,
for the case where the run worker script wants to handle options, for example.
------------------------------------------------------------------------
r4004 | helixhorned | 2013-08-11 08:28:48 -0700 (Sun, 11 Aug 2013) | 1 line

Lunatic: sync defs.ilua's user_defs with r3993, adding member MasterVolume.
------------------------------------------------------------------------
r4001 | helixhorned | 2013-08-11 08:28:45 -0700 (Sun, 11 Aug 2013) | 1 line

Lunatic: add LuaJIT's jit/bcsave.lua and headers for synthesis build preparation.
------------------------------------------------------------------------
r4000 | helixhorned | 2013-08-11 08:28:42 -0700 (Sun, 11 Aug 2013) | 5 lines

Lunatic: prepare Makefiles for synthesis build.

- libs and headers are expected in platform/Windows/* (not there yet)
- prefix Lua #includes with luajit-2.0/
- build bytecode objects with absolute path name (used for debug info)
------------------------------------------------------------------------
FixEngine

polymer.c: remove redundant NULL pointer check in polymer_invalidateplanelights().

Philipp Kutin (Helixhorned) 12 ago 2013, 08:18 UTC−7 r4017

Redundant for the same reason as the preceding one: the pointer has already been dereferenced at the point the check is made. Also, all 5 calls of that function pass a valid pointer (provided the pointers from which the expressions are derived are valid). Reported by Stack, too.

game.c: remove dead bounds check for cheatbuf[], add assertion.

Philipp Kutin (Helixhorned) 12 ago 2013, 08:18 UTC−7 r4016

The check is dead because it is made after the fact (oob access), but the cheat string matching logic below actually assures that cheatbuflen < sizeof(cheatbuf) at all times. Exposed using the Stack tool from http://css.csail.mit.edu/stack/ . Also, in gamedef.c's definecheat handling, print the string length (19), not the buffer length (20) if the cheat was truncated.

Fix

Fix taking address out of bounds of stack'd array, introduced in r3983.

Philipp Kutin (Helixhorned) 12 ago 2013, 08:18 UTC−7 r4014

Clang's UBSan reports this as undefined behavior. I think that the reason is as follows: C99 6.5.3.2#1 (Constraints) says: The operand of the unary & operator shall be either a function designator, the result of a [] or unary * operator, or an lvalue that designates an object that is not a bit-field and is not declared with the register storage-class specifier. But in case of an expression like "&array[-1]", the operand ("array[-1]") does not designate a valid object. Moral: check first -- assure that an expression is valid for a particular operation before carrying it out. Keep in mind that otherwise, the compiler is absolutely free to optimize out the *check*.

Engine

Mapster32/non-Lua: don't keep tags used for TROR nextwalls when c&p-ing sector.

Philipp Kutin (Helixhorned) 12 ago 2013, 08:18 UTC−7 r4012

Again, in case a bunch is discarded. The tags would appear as really tagging the walls instead of being "hidden".

Engine

Mapster32/Lunatic: clear bunchnum and TROR nextwalls when c&p-ing sectors.

Philipp Kutin (Helixhorned) 12 ago 2013, 08:18 UTC−7 r4011

That is, if a bunch is discarded when copying a sector to the clipboard. (This happens if not all sectors that are part of the bunch are copied.)

Mapster32 Engine

Clean up "show height indicators" mode.

Philipp Kutin (Helixhorned) 12 ago 2013, 08:18 UTC−7 r4007

- For setting 1, don't draw them for red walls whose sector floors have equal height. - Make setting 1 the default, because I consider drawing them for such walls (and white walls) noise (as opposed to information). The "verbose" setting 2 is still available.

Engine

Retire MultiPsky_TileToIdx() in favor of engine-side getpskyidx().

Philipp Kutin (Helixhorned) 11 ago 2013, 08:28 UTC−7 r4006

DONT_BUILD, because there have been no significant changes of the non-Lua build.

Lunatic util: add foreachmap module 'plax', looking for maps w/ multiple psky tiles.

Philipp Kutin (Helixhorned) 11 ago 2013, 08:28 UTC−7 r4005

In foreachmap.lua, make init() be able to return a start index for cmdline args, for the case where the run worker script wants to handle options, for example.

prepare Makefiles for synthesis build.

Philipp Kutin (Helixhorned) 11 ago 2013, 08:28 UTC−7 r4000

- libs and headers are expected in platform/Windows/* (not there yet) - prefix Lua #includes with luajit-2.0/ - build bytecode objects with absolute path name (used for debug info)