Commit graph

811 commits

Author SHA1 Message Date
Kp c9dff229f1 Remove dead AI fire leading code 2015-07-25 23:10:47 +00:00
Kp 822f8ad5c0 Use __builtin_object_size to check some unchecked ranges 2015-07-25 23:10:47 +00:00
Kp 2f847030ce Combine partial_range_error reporting
Use iterator type instead of container type, so that T[1] and T[2] use
the same reporting function.  This saves ~7k in an LTO build.
2015-07-25 23:10:47 +00:00
Kp 3f6a402bfd Include bound in partial_range always_error function name 2015-07-25 23:10:47 +00:00
Kp c942d28197 Use accessor for grs_bitmap::bm_type 2015-07-25 23:10:47 +00:00
Kp b7838318b1 Fix valptridx for -fno-inline 2015-07-25 23:10:46 +00:00
Kp 9bfea35e4f Use forward-declaration header for gr.h 2015-07-25 23:10:45 +00:00
Kp 15fb75c1c7 Fix check_header_includes build 2015-07-25 23:10:45 +00:00
Kp cdb113a050 Diagnose including compiler-type_traits without dxxsconf.h 2015-07-25 23:10:45 +00:00
Kp 8594086b23 Move magic_constant definition into valptridx 2015-07-21 02:57:27 +00:00
Kp 6bd93e466f Guard args.h for LTO -Wodr 2015-07-18 21:01:56 +00:00
Kp 4c200342dd Use range_for for PHYSFS archive types 2015-07-18 21:01:55 +00:00
Kp 095e64fd5a Support serializing enum class 2015-07-18 21:01:55 +00:00
Kp 1c5399427a Work around clang name lookup bug #13983
clang searches scopes in the wrong order, causing strange failures when
an inner template has a parameter with the same name as a type in an
outer scope.

clang bug report: <https://llvm.org/bugs/show_bug.cgi?id=13983>
2015-07-13 01:09:37 +00:00
Kp 6c94416a90 Pass array from ptridx factory 2015-07-13 01:09:37 +00:00
Kp fa8dcc9113 Explicitly delete basic_ptridx(pointer_type); require array
Require the array argument for basic_ptridx, which is supplied
automatically when the factory is used.
2015-07-13 01:09:37 +00:00
Kp 1adb56f16b Make draw_mine_all static 2015-07-13 01:09:36 +00:00
Kp ff5bb37c5c Combine basic_ptr_global_factory, basic_vptridx_global_factory 2015-07-13 01:09:36 +00:00
Kp 73fdd59225 Require exact type for valptridx factory 2015-07-13 01:09:36 +00:00
Kp 745de17c41 Use T::index_type for highest_valid 2015-07-13 01:09:36 +00:00
Kp fdd2356eac Use segptridx for Cursegp, Markedsegp 2015-07-12 01:04:18 +00:00
Kp 8b7c5c3e2b Rewrite valptridx
Move decisions out to policy classes.  Provide trivial copy
construction/assignment.  Simplify checking for unsafe conversions.
2015-07-09 03:12:45 +00:00
Kp 658102a868 Improve static_assert test
Previously, SConstruct tested whether static_assert worked with trivial
constant expressions.  Extend the test to more complicated expressions
like the ones used in the program.

Replace the typedef based approach with an inline enum to avoid warnings
about unused local typedefs.

Allow use with compilers that lack working static_assert or that cannot
accept complicated expressions.  Add a non-checking definition that uses
the input parameter.  This prevents warnings when types or constants are
used only for the static_assert.
2015-07-09 03:12:45 +00:00
Kp 4a742e3fc4 Parenthesize static_assert expression
When static_assert is a macro, it must have two arguments as seen by the
preprocessor.  Add an identity mapping to the native case to enforce
this, and fix up all the sites that break with the new rule.
2015-07-09 03:12:45 +00:00
Kp d73e5a24c3 Reduce scope of ifdef(D1||D2) 2015-07-04 21:01:17 +00:00
Kp 968cdbecf4 Add non-aborting UserError for user-caused fatal errors 2015-06-16 03:15:40 +00:00
Kp ce72014e2e Always parse WORDS_BIGENDIAN and !WORDS_BIGENDIAN 2015-06-13 22:42:21 +00:00
Kp 302e344979 Warn when UI_GADGET_* are immediately freed 2015-06-13 22:42:19 +00:00
Kp 9ecb8d8601 Use fwdvalptridx instead of inline forward declarations 2015-06-13 22:42:16 +00:00
Kp 286753d210 Fix valptridx operator& definition 2015-06-13 22:42:15 +00:00
Kp fcaacaebde Factor out valptridx test for *_none 2015-06-13 22:42:15 +00:00
Kp 8358dfcd0b Support biased pointers to help memory debuggers 2015-06-13 22:42:15 +00:00
Kp d5b5846657 Fix serial *_type -fno-inline build 2015-06-11 03:06:58 +00:00
Kp 5124c510f8 Fix serial endian_access -fno-inline build 2015-06-11 03:06:58 +00:00
Kp 64ee9e0047 Improve memdebug d_strdup trace 2015-06-11 03:06:58 +00:00
Kp 7c436f1fbb Merge pull #39 into unification/master
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/39>
Acked-by: Matt1360 <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88712761>
Acked-by: zico <https://github.com/dxx-rebirth/dxx-rebirth/pull/39#issuecomment-88907523>
2015-06-07 16:21:37 +00:00
Kp 3718678576 Reduce cvar.h includes 2015-06-07 16:20:46 +00:00
Kp f7de7d132a Add initial support for minimum_size 2015-06-05 02:34:40 +00:00
Kp a8bb0ad07d Use integral_constant for serial constants 2015-06-05 02:34:40 +00:00
Kp 39b705b352 Use integral_constant for grant masks 2015-06-05 02:34:40 +00:00
Kp a918692a23 Preprocess out EDITOR-only vm_vec_ang_2_matrix
Remove vm_vec_ang_2_matrix from non-EDITOR builds so that
sincos_2_matrix has only one caller, allowing compiler to implicitly
inline it.
2015-06-02 03:03:32 +00:00
Kp 0141e9ed78 Remove redundant fix_sincos calls
The result is immediately overwritten.  Skip computing it.
2015-06-02 03:03:32 +00:00
Kp babfa9d8e7 Construct d_event_mousebutton 2015-05-28 03:08:39 +00:00
Kp 692038f284 Cache modifier keys 2015-05-28 03:08:38 +00:00
Kp 25186ca984 Remove write-only keyd_last_released 2015-05-28 03:08:38 +00:00
Kp badad2ef33 Remove write-only keyd_last_pressed 2015-05-28 03:08:38 +00:00
Kp abfd8e4d83 Split mouse_toggle_cursor 2015-05-28 03:08:38 +00:00
Kp 73300a285d Merge "change u_int*_t to C99 standard uint*_t"
Requested-by: btb <https://github.com/dxx-rebirth/dxx-rebirth/pull/67>
Acked-by: Matt1360 <https://github.com/dxx-rebirth/dxx-rebirth/pull/67#issuecomment-104806115>
2015-05-23 17:36:29 +00:00
Kp 63cea8bb23 Fix gcc-4.6 ui build
gcc-4.6 chokes on `static constexpr type value{};`, but accepts
`static constexpr auto value = type{};`

Fixes: 95e3ac1e5b ("Use integral_constant for UI kind")
2015-05-22 03:33:19 +00:00
Kp 0fc7b1898c Fix gcc-4.6 serial build
gcc-4.6 chokes on `static constexpr type value{};`, but accepts
`static constexpr auto value = type{};`

Fixes: 9595aec2fb ("Use integral_constant for endian constants")
2015-05-22 03:33:19 +00:00