Fix memory leak when ClassDB::bind_method_custom()
fails
#102131
Merged
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.
Fixes #101870
In other cases (for example,
ClassDB::_bind_vararg_method()
andClassDB::bind_methodfi()
), the method bind is deleted just before returning if it can't be added for some reason.A couple examples:
godot/core/object/class_db.cpp
Lines 1899 to 1902 in 71d80b2
godot/core/object/class_db.cpp
Lines 1949 to 1953 in 71d80b2
So, this PR is aiming to do the same thing but in
ClassDB::_bind_method_custom()
.(Because I needed to stash
p_method->get_name()
in a variable so I could use it after the method bind is deleted, I also did a tiny refactor to stash that in a local variable for all cases, since it was referred to quite a lot.)