Commit b2cb5ef
authored
[Python] Fix double free of objects added to TH1::fFunctions (#22493)
Fixes #22417
Provide the correct signal to the python bindings that calling
`th1->GetListOfFunctions()->Add(object)` will take ownership of
the object.
ROOT's Python bindings use TCollection::IsOwner to decide whether objects
inserted into a collection (like `TH1::fFunctions`) should be deleted
(see `_TCollection_Add` pythonization). To ensure the Python bindings
get the correct ownership signal, set the ownership on TH1::fFunctions.
Although, in reality, TH1's destructor actually handles ownership, this
solution still works, since the destructor removes all entries before
deleting the collection.1 parent 186d603 commit b2cb5ef
3 files changed
Lines changed: 34 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| 68 | + | |
68 | 69 | | |
69 | 70 | | |
70 | 71 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
623 | 623 | | |
624 | 624 | | |
625 | 625 | | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
626 | 634 | | |
627 | 635 | | |
628 | 636 | | |
| |||
804 | 812 | | |
805 | 813 | | |
806 | 814 | | |
| 815 | + | |
| 816 | + | |
| 817 | + | |
| 818 | + | |
| 819 | + | |
| 820 | + | |
| 821 | + | |
| 822 | + | |
807 | 823 | | |
808 | 824 | | |
809 | 825 | | |
| |||
0 commit comments