Ralf W. Grosse-Kunstleve
4218213f29
nodiscard fix.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
223283295f
Two minor platform-specific fixes. Using static_cast instead of reinterpret_cast.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
993613d9bf
Trying again, to get around unused parameter warnings-as-erros.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
20ef96c87d
Disabling debugging call of weak_from_this
for C++ < 17.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
bf8d6a2900
First fully successful attempt to make shared_from_this
and trampolines play nicely.
...
Now also passes the open_spiel iterated_prisoners_dilemma_test ASAN clean, in addition to all pybind11 and PyCLIF unit tests.
The problem was that calling `std::shared_ptr<void>::reset()` with a `void` pointer cannot possibly update the `shared_from_this` `weak_ptr`.
The solution is to store a `shd_ptr_reset` function pointer in `guarded_deleter` (similar in idea to the stored function pointer for calling `delete`).
This commit still includes all debugging code, i.e. is "dirty". The code will be cleaned up after the GitHub CI is fully successful.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
dcf8d0762f
First attempt to make shared_from_this and trampolines play nicely. Passes all pybind11 and PyCLIF unit tests ASAN clean, but not the open_spiel iterated_prisoners_dilemma_test.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
bc21158082
Fixing git rebase -X theirs
accident.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
4ab4f36a92
Fixing silly oversight (discovered while creating PR #3041 ).
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
cd5fbc56db
Replacing virtual guarded_operator_call
with non-virtual guarded_delete
.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
1e6cc9dd69
Adding back explicit but default copy constructor, to keep some older compilers happy.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
275aaf977a
Inserting const_cast
for std::get_deleter
return, to keep Ubuntu 20 GCC 6.3.0 happy.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
b04a70b5cc
Fixing oversight (clang-tidy error).
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
362e64e1ca
WIP snapshot: replacing std::shared_ptr<bool> flag_ptr
with simple bool armed_flag
.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
459301d9a8
WIP snapshot: std::get_deleter experiment.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
e80a1f0617
WIP snapshot.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
5bb38c10b3
MSVC 2015 compatibility.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
45ec61f419
Adding shared_ptr_reset_and_rescue_pointee_model_proof_of_concept.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
b633bb5b84
Inserting #ifdef
to preempt Windows fatal exception.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
e0b770d549
Explictly discarding [[nodiscard]] to avoid MSVC CI failures.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
4f00ffdc69
Copying in shared_from_this_custom_deleters.cpp from github.com/rwgk, with adjustments.
...
Base version: e5318faa6a/shared_from_this_custom_deleters.cpp
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
28ed5ecce8
Revert "Experiment: commenting out test_class_sh_shared_from_this."
...
This reverts commit febf9ce949c0bc87a8bf7ab3ddae4deb28636c9d.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
eae174b491
Revert "Experiment: effectively undoing all shared_from_this modifications."
...
This reverts commit d72d54ebb0b7784f5616edc02910dbd9cce0b2a4.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
a6abb7cff1
Revert "Experiment: undoing even more."
...
This reverts commit 59bc2e183e7aef5e45c06aed6965de0ac52d7b06.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
5f92b4ff1c
Revert "Experiment: restoring original smart_holder_type_casters.h from smart_holder branch."
...
This reverts commit 19c5a3613fee71878ba2af0339eed325a5916089.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
2ae3c2ceb7
Experiment: restoring original smart_holder_type_casters.h from smart_holder branch.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
9da1e81590
Experiment: undoing even more.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
715ceb4bf3
Experiment: effectively undoing all shared_from_this modifications.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
6989f174ac
Experiment: commenting out test_class_sh_shared_from_this.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
05bd93543b
Fully emulating type_caster_base-related behavior: trying shared_from_this also for unowned pointees.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
e1de4e88b8
Adding test_class_sh_shared_from_this.cpp to tests/CMakeLists.txt.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
775873d0b6
Adding from_raw_pointer_take_ownership_or_shared_from_this().
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
2a265860a7
enable_shared_from_this_from_raw_ptr_take_ownership_guard: better static_assert that also triggers for derived classes.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
24c223ad8e
static_assert in from_raw_ptr_take_ownership, to be tested.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
7a74bfede7
Restoring init_holder overload for std::enable_shared_from_this and original tests/test_smart_ptr.py.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
e5b38a4459
Breaking up test_shared_ptr_from_this_and_references into smaller subtests. Skipping the only test that generates an ASAN heap-use-after-free.
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
94523e8a02
Experiments: 1. disabling enable_shared_from_this, 2. using smart_holder in test_class_sh_shared_from_this.cpp
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
252b6aefb8
Isolating shared_from_this tests from test_smart_ptr (minimal changes).
2021-06-30 07:04:31 -07:00
Ralf W. Grosse-Kunstleve
bcad852f6b
Pure clang-format fixes (minor accident in PR #3039 ).
2021-06-29 16:16:00 -07:00
Jakob Lykke Andersen
b9241c0330
SM, remove type annotations in test
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
f39efb850b
SH, attribute and property tests
2021-06-29 05:57:32 -07:00
Ralf W. Grosse-Kunstleve
fa5ffc3d02
Automatic clang-format.
2021-06-29 05:57:32 -07:00
Ralf W. Grosse-Kunstleve
a428f5755d
Automatic clang-tidy fixes.
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
f06f0927b3
SH, history tracking
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
0337ed944d
SH, fix use of PYBIND11_TYPE_CASTER_BASE_HOLDER
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
ee53a45ffd
SH, fix typo
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
b735093fde
SH, shared_ptr copy/move, rename to 'history'
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
ef6907c1ae
SH, shared_ptr copy/move, make MSVC happy
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
abf11b9d9a
SH, shared_ptr copy/move, update after review
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
7312e624b2
SH, improve error message from shared_ptr cast policy check
2021-06-29 05:57:32 -07:00
Jakob Lykke Andersen
be60fc52a4
Allow move policy in smart holder caster for shared_ptr
2021-06-29 05:57:32 -07:00