mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-26 23:22:01 +00:00
6873c202b3
Currently pybind11 doesn't check when you define a new object (e.g. a class, function, or exception) that overwrites an existing one. If the thing being overwritten is a class, this leads to a segfault (because pybind still thinks the type is defined, even though Python no longer has the type). In other cases this is harmless (e.g. replacing a function with an exception), but even in that case it's most likely a bug. This code doesn't prevent you from actively doing something harmful, like deliberately overwriting a previous definition, but detects overwriting with a run-time error if it occurs in the standard class/function/exception/def registration interfaces. All of the additions are in non-template code; the result is actually a tiny decrease in .so size compared to master without the new test code (977304 to 977272 bytes), and about 4K higher with the new tests. |
||
---|---|---|
.. | ||
attr.h | ||
cast.h | ||
chrono.h | ||
common.h | ||
complex.h | ||
descr.h | ||
eigen.h | ||
eval.h | ||
functional.h | ||
numpy.h | ||
operators.h | ||
pybind11.h | ||
pytypes.h | ||
stl_bind.h | ||
stl.h | ||
typeid.h |