Ralf W. Grosse-Kunstleve
|
b85cc69714
|
Making test_type_caster_bare_interface_demo.cpp slightly more realistic, ASAN, MSAN, UBSAN clean.
|
2021-02-09 06:47:06 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
e4d6d860b6
|
Fixing bugs discovered by ASAN. The code is now ASAN, MSAN, UBSAN clean.
|
2021-02-09 06:47:06 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
4ddd65de00
|
static handle cast implementations for rtrn_uqmp, rtrn_uqcp.
|
2021-02-09 06:47:06 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
68bee938de
|
Adding MISSING comments in operator std::unique_ptr<mpty[ const]>.
|
2021-02-09 06:47:06 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
6601ec4ea7
|
static handle cast implementations for rtrn_shmp, rtrn_shcp.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
6294eb26e5
|
Pure clang-format change (applied to original type_caster_generic::cast).
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
ee6d15647d
|
Copying type_caster_generic::cast into type_caster<mpty> as-is (preparation for handling smart pointers).
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
4359422d99
|
static cast handle for rtrn_valu works by simply dropping in code from type_caster_base (marked with comments). rtrn_rref raises a RuntimeError, to be investigated.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
6dea65fe64
|
static cast handle for rtrn_cref works by simply dropping in code from type_caster_base (marked with comments). rtrn_mref and rtrn_mptr work via const_cast (to add const).
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
e70a882718
|
static cast handle for rtrn_cptr works by simply dropping in code from type_caster_base (marked with comments).
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
d88be00a7a
|
Systematically setting mtxt for all rtrn_mpty_* functions (preparation, the values are not actually used yet).
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
db529c805c
|
flake8 cleanup
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
d3833d2cbf
|
Fixing oversight (discovered by flake8).
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
ec8ebb766a
|
Pure clang-format --style=file -i change, with two clang-format off directives.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
e7aea026bb
|
Pure clang-format --style=file -i change.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
cfc848a137
|
Retrieving smart_holder pointer in type_caster<std::unique_ptr<mpty[ const]>>::load, and using it cast_op operators.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
6277910abd
|
Improved error messaging: Cannot disown nullptr (as_unique_ptr).
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
4a879cfdcb
|
Retrieving smart_holder pointer in type_caster<std::shared_ptr<mpty[ const]>>::load, and using it cast_op operators.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
3f7a1a1b30
|
Factoring out smart_holder_type_caster_load.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
4b35955a12
|
Retrieving smart_holder pointer in type_caster<mpty>::load, and using it cast_op operators.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
fe5427fc23
|
Adding rvalue_ref, renaming const_value_ref to lvalue_ref & removing const.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
6bdd58a115
|
Adding isinstance<mpty> in type_caster::load functions.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
1ce4256921
|
Adding mpty::mtxt string member.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
03f304e419
|
classh.h: renaming of class_ to classh + namespace; forking test_classh_wip from test_type_caster_bare_interface_demo.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
b3ad3ac43f
|
Adding unique_ptr<mpty>, unique_ptr<mpty const> casters.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
d36a7488ae
|
Adding shared_ptr<mpty>, shared_ptr<mpty const> casters.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
de10541b12
|
Adding type_caster_bare_interface_demo.
|
2021-02-09 06:47:05 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
2cb68ab051
|
Removing stray file.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
69270b5dde
|
Removing obsolete and very incomplete test (replaced by Catch2-based test).
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
9abea63276
|
Converting from methods to factory functions (no functional change).
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
01cacaf207
|
Testing of exceptions not covered by the from-as matrix.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
04a9568487
|
Implementing all [E]xception tests.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
d76050c713
|
Implementing all [S]uccess tests.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
401cdb3b0e
|
Shuffling existing TEST_CASEs into systematic matrix.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
1f80387f4b
|
Improved labeling of TEST_CASEs.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
5ab34305ae
|
New tests/core/smart_holder_poc_test.cpp, using Catch2.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
84bdaebf57
|
Adding from_shared_ptr. Some polishing.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
2a94c687ea
|
Adding from/as unique_ptr<T> and unique_ptr<T, D>.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
72d1b61176
|
Snapshot of WIP, TODO: shared_ptr deleter with on/off switch
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
76e99f1c81
|
pybind11 equivalent of Boost.Python test similar to reproducer under #1333
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
8a393e68ab
|
minor test_private_first_base.cpp simplification (after discovering that this can be wrapped with Boost.Python, using boost::noncopyable)
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
912ce16d0c
|
Demonstration of Undefined Behavior in handling of polymorphic pointers.
(This demo does NOT involve smart pointers at all, unlike the otherwise similar test_smart_ptr_private_first_base.)
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
aac54d4021
|
fixing up-down mixup in comment
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
9623045b7b
|
Additional demonstration of Undefined Behavior in handling of shared_ptr holder.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
bda49efb14
|
Demonstration of Undefined Behavior in handling of shared_ptr holder.
Based on https://godbolt.org/z/4fdjaW by jorgbrown@ (thanks Jorg!).
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
96f7ce5444
|
Copying tests as-is from xxx_value_ptr_xxx_holder branch.
https://github.com/rwgk/pybind11/tree/xxx_value_ptr_xxx_holder
Systematically exercising casting between shared_ptr<base>, shared_ptr<derived>.
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
a923419e6d
|
Copying tests as-is from xxx_value_ptr_xxx_holder branch.
https://github.com/rwgk/pybind11/tree/xxx_value_ptr_xxx_holder
Systematically exercising returning and passing unique_ptr<T>, shared_ptr<T>
with unique_ptr, shared_ptr holder.
Observations:
test_holder_unique_ptr:
make_unique_pointee OK
pass_unique_pointee BUILD_FAIL (as documented)
make_shared_pointee Abort free(): double free detected
pass_shared_pointee RuntimeError: Unable to load a custom holder type from a default-holder instance
test_holder_shared_ptr:
make_unique_pointee Segmentation fault (#1138)
pass_unique_pointee BUILD_FAIL (as documented)
make_shared_pointee OK
pass_shared_pointee OK
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
3cf4db18ed
|
adding test_promotion_of_disowned_to_shared
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
76e7770134
|
TRIGGER_SEGSEV macro, annotations for GET_STACK (vptr::get), GET_INT_STACK (pointee)
|
2021-02-09 06:47:04 -08:00 |
|
Ralf W. Grosse-Kunstleve
|
ea1cdf82ce
|
moving prototype code to pybind11/vptr_holder.h, adding type_caster specialization to make the bindings involving unique_ptr passing compile, but load and cast implementations are missing
|
2021-02-09 06:47:03 -08:00 |
|