@@ -56,27 +56,29 @@ - (NSUInteger)entryCount {
5656 return (NSUInteger )git_tree_entrycount (self.git_tree );
5757}
5858
59- - (GTTreeEntry *)createEntryWithCopyOfEntry : (const git_tree_entry *)entry {
60- return (entry != NULL ? [GTTreeEntry entryWithCopyOfEntry : entry parentTree: self error: nil ] : nil );
59+ - (GTTreeEntry *)createEntryWithEntry : (const git_tree_entry *)entry error : ( NSError **) error {
60+ return (entry != NULL ? [GTTreeEntry entryWithEntry : entry parentTree: self error: nil ] : nil );
6161}
6262
6363- (GTTreeEntry *)entryAtIndex : (NSUInteger )index {
64- return [self createEntryWithCopyOfEntry :git_tree_entry_byindex (self .git_tree, index)];
64+ return [self createEntryWithEntry :git_tree_entry_byindex (self .git_tree, index) error: nil ];
6565}
6666
6767- (GTTreeEntry *)entryWithName : (NSString *)name {
68- return [self createEntryWithCopyOfEntry :git_tree_entry_byname (self .git_tree, name.UTF8String)];
68+ return [self createEntryWithEntry :git_tree_entry_byname (self .git_tree, name.UTF8String) error: nil ];
6969}
7070
7171- (GTTreeEntry *)entryWithPath : (NSString *)path error : (NSError **)error {
72- git_tree_entry *entry = NULL ;
73- int gitError = git_tree_entry_bypath (&entry , self.git_tree , path.UTF8String );
72+ git_tree_entry *internalEntry = NULL ;
73+ int gitError = git_tree_entry_bypath (&internalEntry , self.git_tree , path.UTF8String );
7474 if (error != GIT_OK) {
75- if (error != NULL ) *error = [NSError git_errorFor: gitError description: @" Failed to get tree ntry %@ " , path];
75+ if (error != NULL ) *error = [NSError git_errorFor: gitError description: @" Failed to get tree entry %@ " , path];
7676 return nil ;
7777 }
7878
79- return [GTTreeEntry entryWithEntry: entry parentTree: self ];
79+ GTTreeEntry *entry = [self createEntryWithEntry: internalEntry error: error];
80+ git_tree_entry_free (internalEntry);
81+ return entry;
8082}
8183
8284- (git_tree *)git_tree {
@@ -90,7 +92,7 @@ static int treewalk_cb(const char *root, const git_tree_entry *git_entry, void *
9092 NSString *rootString = @(root);
9193 GTTreeEntry *parentEntry = enumerationStruct->directoryStructure [rootString];
9294 GTTree *parentTree = parentEntry != nil ? parentEntry.tree : enumerationStruct->myself ;
93- GTTreeEntry *entry = [GTTreeEntry entryWithCopyOfEntry : git_entry parentTree: parentTree error: nil ];
95+ GTTreeEntry *entry = [GTTreeEntry entryWithEntry : git_entry parentTree: parentTree error: nil ];
9496
9597 if (entry.type == GTObjectTypeTree) {
9698 NSString *path = [rootString stringByAppendingPathComponent: entry.name];
0 commit comments