Commit Graph
483 Commits
Author SHA1 Message Date
Michele Caini b170f2f69a reduce the number of template instantiations 2019-02-01 22:29:24 +01:00
Michele Caini 7f1abab9ae bug fixing (find on views) 2019-01-29 09:00:34 +01:00
Michele Caini 2ec7bc878e minor changes 2019-01-29 08:42:37 +01:00
Michele Caini e97d9bb095 maybe_atomic_type -> maybe_atomic_t 2019-01-29 08:40:49 +01:00
Michele Caini 2f3b02e870 typo 2019-01-29 08:40:27 +01:00
Michele Caini 11b7a45c32 improved registry::reset 2019-01-29 08:40:22 +01:00
Michele Caini fb10d2f9c2 cleanup 2019-01-29 08:38:59 +01:00
Michele Caini 60bb7f66cf updated todo list 2019-01-29 08:38:48 +01:00
Michele Caini ad5143169a removed registry::component_pool 2019-01-29 08:36:50 +01:00
Michele Caini d68c90a429 removed registry ::pool/::managed 2019-01-29 08:36:42 +01:00
Michele Caini 8a51549395 updated list of contributors 2019-01-26 16:43:31 +01:00
corystegel 9f997fe1fa Fix sparse_set invalid state when component constructor throws (#176)
Fix sparse_set invalid state when component constructor throws

Previously, a component's constructor that throws would cause the sparse
set to think that the entity still exists in the set. This is because the underlying
sparse set that stores the entities will have its entry added before the component
is added to the component set.

This could cause a number of invalid memory access problems such as the following:

1) Exception triggers destructor of enclosing object that then tries to remove
   the component that was just added. SparseSet<entity_t, Component>::has() will
   return true for the entity but when destroy() is called "instances" will be empty
   so instances.back() will be invalid.

2) If the exception is handled then calling get(entity) for the same entity
   identifier that initially threw the exception will give a position for that
   entity even though it was not added. This can cause an invalid memory access
   or accessing the data of a different stored component.
2019-01-25 22:36:30 +01:00
Michele Caini 00f1f6d86b updated sigh + added future plans for this class to the todo list 2019-01-25 14:39:00 +01:00
Michele Caini be72728000 updated doc 2019-01-24 14:30:16 +01:00
Michele Caini f558126854 fixed typo + added tests (thanks to Kerndog73) 2019-01-24 08:36:55 +01:00
Michele Caini 08ed1500ac updated doc + minor changes 2019-01-23 16:06:53 +01:00
Michele Caini f0926f1cc7 removed final specifier 2019-01-23 15:51:55 +01:00
Michele Caini fe3f6aa22b signal: review 2019-01-23 15:42:29 +01:00
Michele Caini 1325f75e81 updated links 2019-01-23 15:37:15 +01:00
Michele Caini 4b1d3a7b6f allow for null entity members (#174) 2019-01-13 22:28:40 +01:00
Michele Caini 404afcdfd6 added default constructor to handle 2019-01-12 14:49:14 +01:00
Michele Caini 99793180f1 minor changes 2019-01-08 17:24:42 +01:00
Michele Caini c91f9beddb removed raw view + added extended each member function to all the other views 2019-01-04 10:44:27 +01:00
Michele Caini c9c5ccaa6d updated file links.md 2019-01-04 10:43:18 +01:00
Michele Caini da42de7ac8 updated copyright 2019-01-02 15:36:14 +01:00
Michele Caini 3c9a6ad218 delegate: curried functions can accept linked parameters either by value or by reference 2019-01-01 15:01:13 +01:00
Michele Caini f0389d6b47 updated TODO 2018-12-31 17:52:58 +01:00
Michele Caini 76eab21738 appveyor runs the tests now 2018-12-29 00:57:23 +01:00
Michele Caini 3b32c57d94 delegate: updated constraints for curried functions 2018-12-28 22:53:21 +01:00
Michele Caini d119032cb9 added support for extra arguments to dispatcher 2018-12-28 16:10:09 +01:00
Michele Caini 397a04b49c typo 2018-12-26 15:00:46 +01:00
Michele Caini d32c8e9457 empty type optimization 2018-12-26 14:50:30 +01:00
Michele Caini ebb2974ca7 added exclude alias for type_list 2018-12-21 16:23:23 +01:00
Michele Caini cbb1131a5d added maybe_atomic_type 2018-12-21 15:35:27 +01:00
Michele Caini d9de7fe3b0 more tests 2018-12-19 15:26:21 +01:00
Michele Caini 24ba692884 delegate: support for curried functions 2018-12-19 14:18:59 +01:00
Michele Caini 960bbbde29 more on registry::clone (close #161) 2018-12-17 21:39:30 +01:00
Michele Caini eb79b79c35 updated contributors list 2018-12-16 13:50:04 +01:00
Michele Caini 8212ed6d87 monostate: helper template variable 2018-12-16 13:49:13 +01:00
Michele Caini c639cb5285 added hashed_string::to_value for direct computation 2018-12-16 13:49:09 +01:00
ceeac a88fd1c669 Fix compile error when compiling example with GCC8 (#170) 2018-12-16 13:48:23 +01:00
Michele Caini b053f23d15 registry::clone supports type list now (close #165) 2018-12-14 22:24:52 +01:00
Michele Caini 9d32a89491 doc: used @copydoc where possible 2018-12-13 22:50:23 +01:00
Michele Caini cb9a147fff clone functionality (close #161) 2018-12-13 08:55:43 +01:00
Michele Caini c9fddedbf1 UB/Crash in entt::insertion_sort (#167) 2018-12-11 14:17:39 +01:00
ProWolf 530bbbe4c5 added compile time version macros (#166) 2018-12-10 22:53:22 +01:00
Michele Caini 73e5a9f45b support for filtered persistent views 2018-12-09 13:50:41 +01:00
Michele Caini 72d4e947b6 Conan: Add CI setup #163 2018-12-05 14:51:56 +01:00
Michele Caini 41750c3639 typo 2018-11-30 14:56:48 +01:00
Michele Caini 52b36f38a0 delegate: a few more tests 2018-11-30 11:52:39 +01:00