dxx-rebirth/common/main
Kp bde498894a Disallow operator=(T &&) && in valptridx
GCC std::remove_if overwrites removed elements using:

	*dstiter = move(*srciter);

This is fine for normal containers, but produces incorrect results when
*dstiter returns a proxy object instead of a reference.  In that case,
the proxy object is move-assigned from the source, then goes out of
scope.  If the move assignment did not write to underlying storage, as
valptridx proxy objects do not, then incorrect results occur.  This
broke ActiveDoor handling (fixed in 4a01fab66d98[1]) and has been a trap
waiting to recur.  Apply reference-qualifiers to valptridx objects so
that move-assignment requires an lvalue for the left-hand side.  This
permits normal use of move-assignment, but forces a compile error if
std::remove_if or similar are used on valptridx proxy objects.

[1]: 4a01fab66d
2018-06-08 04:04:05 +00:00
..
ai.h Reset boss teleport time on boss initialization 2018-03-15 04:05:42 +00:00
aistruct.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
automap.h Fix check_header_includes=1 build 2018-06-06 04:53:45 +00:00
bm.h Make eclip_num unsigned 2018-03-31 21:53:01 +00:00
cast_range_result.h Use valptridx for Dl_indices 2018-06-06 04:53:45 +00:00
cli.cpp Pass font to gr_string,gr_printf 2018-05-19 23:21:42 +00:00
cli.h Rewrite CLI 2015-12-22 04:18:52 +00:00
cmd.cpp Replace useless printf with puts 2017-12-05 05:29:55 +00:00
cmd.h Fix clang cvar build 2016-01-26 03:45:06 +00:00
cntrlcen.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
collide.h Unify D1/D2 scrape_player_on_wall 2017-09-08 00:56:37 +00:00
config.h Move FPSIndicator to CCfg 2016-10-02 19:35:33 +00:00
controls.h Always qualify valptridx type/factory 2017-06-10 03:31:02 +00:00
credits.h Split credits_show special case into dedicated functions 2016-08-19 03:41:42 +00:00
cvar.cpp Fix cvar -Wrestrict in gcc-8 2018-05-05 22:33:55 +00:00
cvar.h Fix clang cvar build 2016-01-26 03:45:06 +00:00
d_enumerate.h Use utility d_enumerate for do_cloak_stuff 2016-11-19 17:24:52 +00:00
d_srcloc.h Fix compile error for !DXX_HAVE_CXX_BUILTIN_FILE_LINE 2017-12-27 05:39:07 +00:00
digi.h Prevent stacking weapon rotation sounds 2018-05-13 03:14:34 +00:00
effects.h Make eclip_num unsigned 2018-03-31 21:53:01 +00:00
endlevel.h Pass canvas to render_endlevel_frame 2017-03-11 19:56:28 +00:00
escort.h Always qualify valptridx type/factory 2017-06-10 03:31:02 +00:00
fireball.h Split drop_powerup path for dropping robots 2017-08-11 23:43:53 +00:00
fuelcen.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
fvi.h Avoid temporarily moving boss while probing layout 2017-03-01 02:48:40 +00:00
fwd-object.h Remove __attribute__((packed)) from quaternionpos 2018-03-31 21:53:01 +00:00
fwd-player.h Use valptridx for Players 2017-08-13 20:38:32 +00:00
fwd-segment.h Use valptridx for Dl_indices 2018-06-06 04:53:45 +00:00
fwd-wall.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
fwd-weapon.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
game.h Use enum for Difficulty_level 2018-05-12 18:24:19 +00:00
gamefont.h Pass fonts to LINE_SPACING 2018-05-19 23:21:42 +00:00
gamemine.h Unify segment2_read 2017-06-17 23:05:16 +00:00
gamepal.h Fix check_header_includes build 2016-01-09 16:38:12 +00:00
gamesave.h Move conditionally compiled code into namespace dsx 2016-08-25 04:05:32 +00:00
gameseg.h Pass vertex factory to compute_center_point_on_side 2018-03-12 03:43:47 +00:00
gameseq.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
gauges.h Always qualify valptridx type/factory 2017-06-10 03:31:02 +00:00
hostage.h Remove obsolete D1 hostage editor code 2017-10-14 17:10:31 +00:00
hudmsg.h Pass canvas to HUD_render_message_frame 2017-03-11 19:56:21 +00:00
inferno.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
kconfig.h Unify some control_info fields 2018-01-29 01:56:40 +00:00
kmatrix.h Use #ifdef dsx to guard dsx namespace 2016-01-09 16:38:15 +00:00
laser.h Remove global Network_laser_track 2018-03-05 01:40:44 +00:00
lighting.h Always qualify valptridx type/factory 2017-06-10 03:31:02 +00:00
menu.h Move namespace dsx handling to dsx-ns.h 2016-03-19 19:08:10 +00:00
mission.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
morph.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
multi.h Prevent stacking weapon rotation sounds 2018-05-13 03:14:34 +00:00
multibot.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
multiinternal.h Prevent stacking weapon rotation sounds 2018-05-13 03:14:34 +00:00
net_udp.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
newdemo.h Cache player references 2017-08-13 20:38:31 +00:00
newmenu.h Move menu_number_bias_wrapper bias into type signature 2017-09-26 04:15:50 +00:00
nvparse.h Replace "compiler-type_traits.h" with <type_traits> 2017-06-25 20:46:03 +00:00
object.h Move Debris_object_count into d_level_object_state 2018-04-02 03:39:51 +00:00
objnum.h
paging.h Move conditionally compiled code into namespace dsx 2016-08-25 04:05:32 +00:00
physics.h Track visited segments as a local 2017-08-02 02:49:13 +00:00
piggy.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
player-callsign.h Move player callsign to player-callsign.h 2015-07-25 23:10:45 +00:00
player-flags.h Player keeps any keys collected on a secret level even if they die on the secret level 2017-01-29 07:54:43 +08:00
player.h Remove unnecessary inclusions of compiler-static_assert.h 2018-05-05 22:33:55 +00:00
playsave.h Use enum for Difficulty_level 2018-05-12 18:24:19 +00:00
polyobj.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
powerup.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
render.h Remove unused found_poly 2017-11-01 02:01:20 +00:00
render_state.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
robot.h Prevent stacking weapon rotation sounds 2018-05-13 03:14:34 +00:00
scores.h Propagate scores_maybe_add_player argument 2016-12-10 17:51:08 +00:00
screens.h Use #ifdef dsx to guard dsx namespace 2016-01-09 16:38:15 +00:00
segiter.h Propagate objects_in arguments 2017-08-13 20:38:31 +00:00
segment.h Use valptridx for Dl_indices 2018-06-06 04:53:45 +00:00
segpoint.h Move fwdsegment.h -> fwd-segment.h for consistency 2015-10-10 03:44:14 +00:00
selfiter.h Disallow operator=(T &&) && in valptridx 2018-06-08 04:04:05 +00:00
slew.h Always qualify valptridx type/factory 2017-06-10 03:31:02 +00:00
songs.h Fix songs_play_file use for sdlmixer=0 2017-11-25 01:56:51 +00:00
sounds.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
state.h Pass player to init_player_stats_level 2017-04-30 16:25:16 +00:00
switch.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
terrain.h Pass canvas to render_terrain 2017-03-11 19:56:26 +00:00
texmerge.h Propagate constant texmerge_init argument 2016-11-19 17:24:52 +00:00
text.h Move conditionally compiled code into namespace dsx 2016-08-25 04:05:32 +00:00
textures.h Propagate MAX_TEXTURES 2016-07-10 04:11:35 +00:00
titles.h Move intro_played to dsx 2017-03-18 18:07:35 +00:00
valptridx.tcc Add alternate valptridx error reporting mechanisms 2017-08-11 23:43:52 +00:00
vclip.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
vers_id.h Fix gcc-4.9 pch=1 extern conflict 2017-07-08 18:17:48 +00:00
wall.h Use constexpr integral_constant for various magic numbers 2017-10-14 17:10:30 +00:00
weapon.h Replace "compiler-type_traits.h" with <type_traits> 2017-06-25 20:46:03 +00:00
weapon_id.h Reduce D1 spreadfire cost 2017-02-19 19:33:45 +00:00