------------------------------------------------------------------------ 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) ------------------------------------------------------------------------