Allow for saving of props to an object#421
Merged
johnhaley81 merged 1 commit intomasterfrom Feb 24, 2015
Merged
Conversation
Some properties were being set on the libgit2 C struct but would be destroyed after the function is completed. The problem was that C struct would still assume that the memory it had was valid and would try to use it resulting in random segfaults. Now you can mark an argument as `saveArg` and then that argument will be persisted to the parent object and disposed of when the parent is deleted. Currently this only works in sync functions since I couldn't find an async method that would need this. If this changes it shouldn't be too hard to implement. Another thing to note is that the if the parent object is marked as `!selfFreeing` then we're still going to dispose of the persisted objects because if not then they will memory leak all over the place. This might need to be looked into more later. I currently couldn't find a situation where this would happen but the code is pretty complicated at this point and I certainly could have missed something
Collaborator
Author
Member
|
@johnhaley81 Oh snap, excellent find! |
johnhaley81
added a commit
that referenced
this pull request
Feb 24, 2015
Allow for saving of props to an object
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Some properties were being set on the libgit2 C struct but would
be destroyed after the function is completed. The problem was that
C struct would still assume that the memory it had was valid and
would try to use it resulting in random segfaults.
Now you can mark an argument as
saveArgand then that argumentwill be persisted to the parent object and disposed of when the
parent is deleted.
Currently this only works in sync functions since I couldn't find
an async method that would need this. If this changes it shouldn't
be too hard to implement.
Another thing to note is that the if the parent object is marked
as
!selfFreeingthen we're still going to dispose of thepersisted objects because if not then they will memory leak all
over the place. This might need to be looked into more later. I
currently couldn't find a situation where this would happen but
the code is pretty complicated at this point and I certainly could
have missed something