py: fix reference count bug in From(Py<T>) for PyObject #1297
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I have just discovered a reference counting issue in one of our
From
implementations. It leads to a reference count being decreased when it should not. Unfortunately this was an implementation introduced by me since0.12
🤦The offending line is here:
pyo3/src/instance.rs
Line 477 in 32be8d9
I incorrectly thought the destructuring would mean that
Py::drop()
is not run forother
. What actually happens is thatptr
implementsCopy
, so it is copied fromother
, and thenother
is dropped.This means
ptr
has a reference count decreased when it should not.This PR corrects the issue and adds a test. The test fails on master.
cc @kngwyu - I think I will have to backport a bugfix
0.12.4
and yank the rest of the0.12
releases.