Skip to content

Closing a repository document leaks everything #439

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 19 additions & 21 deletions Classes/Controllers/PBGitHistoryController.h
Original file line number Diff line number Diff line change
@@ -24,33 +24,31 @@
@class PBHistorySearchController;

@interface PBGitHistoryController : PBViewController {
IBOutlet PBRefController *refController;
IBOutlet NSSearchField *searchField;
IBOutlet NSArrayController* commitController;
IBOutlet NSTreeController* treeController;
IBOutlet NSOutlineView* fileBrowser;
NSArray *currentFileBrowserSelectionPath;
IBOutlet PBCommitList* commitList;
IBOutlet PBCollapsibleSplitView *historySplitView;
IBOutlet NSArrayController *commitController;
IBOutlet NSTreeController *treeController;
IBOutlet PBWebHistoryController *webHistoryController;
QLPreviewPanel* previewPanel;
IBOutlet PBHistorySearchController *searchController;
IBOutlet GLFileView *fileView;
IBOutlet PBRefController *refController;
IBOutlet PBHistorySearchController *searchController;

IBOutlet PBGitGradientBarView *upperToolbarView;
IBOutlet NSButton *mergeButton;
IBOutlet NSButton *cherryPickButton;
IBOutlet NSButton *rebaseButton;

IBOutlet PBGitGradientBarView *scopeBarView;
IBOutlet NSButton *allBranchesFilterItem;
IBOutlet NSButton *localRemoteBranchesFilterItem;
IBOutlet NSButton *selectedBranchFilterItem;
__weak IBOutlet NSSearchField *searchField;
__weak IBOutlet NSOutlineView *fileBrowser;
__weak IBOutlet PBCommitList *commitList;
__weak IBOutlet PBCollapsibleSplitView *historySplitView;
__weak IBOutlet PBGitGradientBarView *upperToolbarView;
__weak IBOutlet NSButton *mergeButton;
__weak IBOutlet NSButton *cherryPickButton;
__weak IBOutlet NSButton *rebaseButton;
__weak IBOutlet PBGitGradientBarView *scopeBarView;
__weak IBOutlet NSButton *allBranchesFilterItem;
__weak IBOutlet NSButton *localRemoteBranchesFilterItem;
__weak IBOutlet NSButton *selectedBranchFilterItem;
__weak IBOutlet id webView;

IBOutlet id webView;
NSArray *currentFileBrowserSelectionPath;
QLPreviewPanel* previewPanel;
int selectedCommitDetailsIndex;
BOOL forceSelectionUpdate;

PBGitTree *gitTree;
PBGitCommit *webCommit;
PBGitCommit *selectedCommit;
10 changes: 5 additions & 5 deletions Classes/Controllers/PBGitSidebarController.h
Original file line number Diff line number Diff line change
@@ -14,11 +14,11 @@
@class PBGitCommitController;

@interface PBGitSidebarController : PBViewController<NSOutlineViewDelegate> {
IBOutlet NSWindow *window;
IBOutlet NSOutlineView *sourceView;
IBOutlet NSView *sourceListControlsView;
IBOutlet NSPopUpButton *actionButton;
IBOutlet NSSegmentedControl *remoteControls;
__weak IBOutlet NSWindow *window;
__weak IBOutlet NSOutlineView *sourceView;
__weak IBOutlet NSView *sourceListControlsView;
__weak IBOutlet NSPopUpButton *actionButton;
__weak IBOutlet NSSegmentedControl *remoteControls;

NSMutableArray *items;

15 changes: 6 additions & 9 deletions Classes/Controllers/PBGitWindowController.h
Original file line number Diff line number Diff line change
@@ -15,18 +15,15 @@
PBViewController *contentController;

PBGitSidebarController *sidebarController;
IBOutlet NSView *sourceListControlsView;
IBOutlet NSSplitView *splitView;
IBOutlet NSView *sourceSplitView;
IBOutlet NSView *contentSplitView;
__weak IBOutlet NSView *sourceListControlsView;
__weak IBOutlet NSSplitView *splitView;
__weak IBOutlet NSView *sourceSplitView;
__weak IBOutlet NSView *contentSplitView;

IBOutlet NSTextField *statusField;
IBOutlet NSProgressIndicator *progressIndicator;
__weak IBOutlet NSTextField *statusField;
__weak IBOutlet NSProgressIndicator *progressIndicator;

PBViewController* viewController;

IBOutlet NSToolbarItem *terminalItem;
IBOutlet NSToolbarItem *finderItem;
}

@property (nonatomic, weak) PBGitRepository *repository;
6 changes: 0 additions & 6 deletions Classes/Controllers/PBGitWindowController.m
Original file line number Diff line number Diff line change
@@ -86,12 +86,6 @@ - (void) awakeFromNib
[[statusField cell] setBackgroundStyle:NSBackgroundStyleRaised];
[progressIndicator setUsesThreadedAnimation:YES];

NSImage *finderImage = [[NSWorkspace sharedWorkspace] iconForFileType:NSFileTypeForHFSTypeCode(kFinderIcon)];
[finderItem setImage:finderImage];

NSImage *terminalImage = [[NSWorkspace sharedWorkspace] iconForFile:@"/Applications/Utilities/Terminal.app/"];
[terminalItem setImage:terminalImage];

[self showWindow:nil];
}

12 changes: 6 additions & 6 deletions Classes/Controllers/PBHistorySearchController.h
Original file line number Diff line number Diff line change
@@ -28,13 +28,13 @@ typedef enum historySearchModes {
NSPanel *rewindPanel;
}

@property (assign) IBOutlet PBGitHistoryController *historyController;
@property (assign) IBOutlet NSArrayController *commitController;
@property (weak) IBOutlet PBGitHistoryController *historyController;
@property (weak) IBOutlet NSArrayController *commitController;

@property (assign) IBOutlet NSSearchField *searchField;
@property (assign) IBOutlet NSSegmentedControl *stepper;
@property (assign) IBOutlet NSTextField *numberOfMatchesField;
@property (assign) IBOutlet NSProgressIndicator *progressIndicator;
@property (weak) IBOutlet NSSearchField *searchField;
@property (weak) IBOutlet NSSegmentedControl *stepper;
@property (weak) IBOutlet NSTextField *numberOfMatchesField;
@property (weak) IBOutlet NSProgressIndicator *progressIndicator;

@property PBHistorySearchMode searchMode;

8 changes: 3 additions & 5 deletions Classes/Controllers/PBRefController.h
Original file line number Diff line number Diff line change
@@ -16,11 +16,9 @@
@class PBRefMenuItem;

@interface PBRefController : NSObject <PBRefContextDelegate> {
IBOutlet PBGitHistoryController *historyController;
IBOutlet NSArrayController *commitController;
IBOutlet PBCommitList *commitList;

IBOutlet NSPopUpButton *branchPopUp;
__weak IBOutlet PBGitHistoryController *historyController;
__weak IBOutlet NSArrayController *commitController;
__weak IBOutlet PBCommitList *commitList;
}

- (void) fetchRemote:(PBRefMenuItem *)sender;
2 changes: 1 addition & 1 deletion Classes/Controllers/PBViewController.h
Original file line number Diff line number Diff line change
@@ -12,7 +12,7 @@

@interface PBViewController : NSViewController {
__weak PBGitRepository *repository;
PBGitWindowController *superController;
__weak PBGitWindowController *superController;

NSString *status;
BOOL isBusy;
6 changes: 3 additions & 3 deletions Classes/Controllers/PBWebController.h
Original file line number Diff line number Diff line change
@@ -10,19 +10,19 @@
#import <WebKit/WebKit.h>

@interface PBWebController : NSObject {
IBOutlet WebView* view;
__weak IBOutlet WebView* view;
NSString *startFile;
BOOL finishedLoading;

// For async git reading
NSMapTable *callbacks;

// For the repository access
IBOutlet id repository;
__weak IBOutlet id repository;
}

@property NSString *startFile;
@property id repository;
@property (weak) id repository;

- (WebScriptObject *) script;
- (void) closeView;
4 changes: 2 additions & 2 deletions Classes/Controllers/PBWebHistoryController.h
Original file line number Diff line number Diff line change
@@ -18,8 +18,8 @@


@interface PBWebHistoryController : PBWebController {
IBOutlet PBGitHistoryController* historyController;
IBOutlet id<PBRefContextDelegate> contextMenuDelegate;
__weak IBOutlet PBGitHistoryController* historyController;
__weak IBOutlet id<PBRefContextDelegate> contextMenuDelegate;

GTOID* currentSha;
NSString* diff;
8 changes: 4 additions & 4 deletions Classes/PBCommitList.h
Original file line number Diff line number Diff line change
@@ -16,10 +16,10 @@
typedef void(^PBFindPanelActionBlock)(id sender);

@interface PBCommitList : NSTableView {
IBOutlet WebView* webView;
IBOutlet PBWebHistoryController *webController;
IBOutlet PBGitHistoryController *controller;
IBOutlet PBHistorySearchController *searchController;
__weak IBOutlet WebView* webView;
__weak IBOutlet PBWebHistoryController *webController;
__weak IBOutlet PBGitHistoryController *controller;
__weak IBOutlet PBHistorySearchController *searchController;

BOOL useAdjustScroll;
NSPoint mouseDownPoint;
8 changes: 4 additions & 4 deletions Classes/Views/GLFileView.h
Original file line number Diff line number Diff line change
@@ -14,12 +14,12 @@
@class PBGitHistoryController;

@interface GLFileView : PBWebController <MGScopeBarDelegate> {
IBOutlet PBGitHistoryController* historyController;
IBOutlet MGScopeBar *typeBar;
__weak IBOutlet PBGitHistoryController* historyController;
__weak IBOutlet MGScopeBar *typeBar;
NSMutableArray *groups;
NSString *logFormat;
IBOutlet NSView *accessoryView;
IBOutlet NSSplitView *fileListSplitView;
__weak IBOutlet NSView *accessoryView;
__weak IBOutlet NSSplitView *fileListSplitView;
}

- (void)showFile;
4 changes: 2 additions & 2 deletions Classes/Views/PBGitRevisionCell.h
Original file line number Diff line number Diff line change
@@ -16,8 +16,8 @@
PBGitCommit *objectValue;
PBGraphCellInfo *cellInfo;
NSTextFieldCell *textCell;
IBOutlet PBGitHistoryController *controller;
IBOutlet id<PBRefContextDelegate> contextMenuDelegate;
__weak IBOutlet PBGitHistoryController *controller;
__weak IBOutlet id<PBRefContextDelegate> contextMenuDelegate;
}

- (int) indexAtX:(float)x;
2 changes: 1 addition & 1 deletion Classes/Views/PBQLOutlineView.h
Original file line number Diff line number Diff line change
@@ -10,7 +10,7 @@
#import "PBGitHistoryController.h"

@interface PBQLOutlineView : NSOutlineView {
IBOutlet PBGitHistoryController* controller;
__weak IBOutlet PBGitHistoryController* controller;
}

@end
2 changes: 1 addition & 1 deletion Classes/Views/PBQLTextView.h
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@


@interface PBQLTextView : NSTextView {
IBOutlet PBGitHistoryController *controller;
__weak IBOutlet PBGitHistoryController *controller;
}

@end
2 changes: 1 addition & 1 deletion Classes/git/PBGitHistoryGrapher.h
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@


@interface PBGitHistoryGrapher : NSObject {
id delegate;
__weak id delegate;
NSOperationQueue *currentQueue;

NSMutableSet *searchSHAs;
6 changes: 4 additions & 2 deletions Classes/git/PBGitHistoryGrapher.m
Original file line number Diff line number Diff line change
@@ -30,7 +30,8 @@ - (id) initWithBaseCommits:(NSSet *)commits viewAllBranches:(BOOL)viewAll queue:
- (void)sendCommits:(NSArray *)commits
{
NSDictionary *commitData = [NSDictionary dictionaryWithObjectsAndKeys:currentQueue, kCurrentQueueKey, commits, kNewCommitsKey, nil];
[delegate performSelectorOnMainThread:@selector(updateCommitsFromGrapher:) withObject:commitData waitUntilDone:NO];
id strongDelegate = delegate;
[strongDelegate performSelectorOnMainThread:@selector(updateCommitsFromGrapher:) withObject:commitData waitUntilDone:NO];
}


@@ -39,6 +40,7 @@ - (void) graphCommits:(NSArray *)revList
if (!revList || [revList count] == 0)
return;

id strongDelegate = delegate;
//NSDate *start = [NSDate date];
NSThread *currentThread = [NSThread currentThread];
NSDate *lastUpdate = [NSDate date];
@@ -69,7 +71,7 @@ - (void) graphCommits:(NSArray *)revList
//NSLog(@"Graphed %i commits in %f seconds (%f/sec)", counter, duration, counter/duration);

[self sendCommits:commits];
[delegate performSelectorOnMainThread:@selector(finishedGraphing) withObject:nil waitUntilDone:NO];
[strongDelegate performSelectorOnMainThread:@selector(finishedGraphing) withObject:nil waitUntilDone:NO];
}


1 change: 1 addition & 0 deletions Classes/git/PBGitHistoryList.m
Original file line number Diff line number Diff line change
@@ -92,6 +92,7 @@ - (void)cleanup
if (currentRevList) {
[currentRevList removeObserver:self forKeyPath:@"commits"];
[currentRevList cancel];
currentRevList = nil;
}
[graphQueue cancelAllOperations];