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
Show file tree
Hide file tree
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
Expand Up @@ -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;
Expand Down
10 changes: 5 additions & 5 deletions Classes/Controllers/PBGitSidebarController.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
15 changes: 6 additions & 9 deletions Classes/Controllers/PBGitWindowController.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
6 changes: 0 additions & 6 deletions Classes/Controllers/PBGitWindowController.m
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}

Expand Down
12 changes: 6 additions & 6 deletions Classes/Controllers/PBHistorySearchController.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
8 changes: 3 additions & 5 deletions Classes/Controllers/PBRefController.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion Classes/Controllers/PBViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

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

NSString *status;
BOOL isBusy;
Expand Down
6 changes: 3 additions & 3 deletions Classes/Controllers/PBWebController.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions Classes/Controllers/PBWebHistoryController.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
8 changes: 4 additions & 4 deletions Classes/PBCommitList.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
8 changes: 4 additions & 4 deletions Classes/Views/GLFileView.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
4 changes: 2 additions & 2 deletions Classes/Views/PBGitRevisionCell.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion Classes/Views/PBQLOutlineView.h
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Up @@ -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
Expand Up @@ -17,7 +17,7 @@


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

NSMutableSet *searchSHAs;
Expand Down
6 changes: 4 additions & 2 deletions Classes/git/PBGitHistoryGrapher.m
Original file line number Diff line number Diff line change
Expand Up @@ -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];
}


Expand All @@ -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];
Expand Down Expand Up @@ -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];
}


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

Expand Down