From 7adfa56357f061a908d5eb6e1e6b2809adbc6b11 Mon Sep 17 00:00:00 2001 From: Riccardo Mottola Date: Thu, 8 Jul 2021 23:43:09 +0200 Subject: [PATCH] the wrapper should be property of the controller, not the view --- Modules/Debuggers/ProjectCenter/PCDebugger.h | 3 ++ Modules/Debuggers/ProjectCenter/PCDebugger.m | 17 ++++------ .../Debuggers/ProjectCenter/PCDebuggerView.h | 4 --- .../Debuggers/ProjectCenter/PCDebuggerView.m | 33 +++++-------------- 4 files changed, 19 insertions(+), 38 deletions(-) diff --git a/Modules/Debuggers/ProjectCenter/PCDebugger.h b/Modules/Debuggers/ProjectCenter/PCDebugger.h index d92f047..55088b2 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebugger.h +++ b/Modules/Debuggers/ProjectCenter/PCDebugger.h @@ -27,6 +27,7 @@ #import #import +#import "PCDebuggerWrapperProtocol.h" extern const NSString *PCBreakTypeKey; extern NSString *PCBreakTypeByLine; @@ -49,8 +50,10 @@ extern NSString *PCDBDebuggerStartedNotification; NSString *lastFileNameParsed; NSUInteger lastLineNumberParsed; NSMutableArray *breakpoints; + id debuggerWrapper; } +- (id )debuggerWrapper; - (void) setStatus: (NSString *) status; - (NSString *) status; - (NSString *)executablePath; diff --git a/Modules/Debuggers/ProjectCenter/PCDebugger.m b/Modules/Debuggers/ProjectCenter/PCDebugger.m index de27369..e56f8f6 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebugger.m +++ b/Modules/Debuggers/ProjectCenter/PCDebugger.m @@ -139,8 +139,7 @@ NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; { if((self = [super init]) != nil) { - NSLog(@"PCDebugger Init"); - id debuggerWrapper; + NSLog(@"PCDebugger Init"); // initialization here... if([NSBundle loadNibNamed: @"PCDebugger" owner: self] == NO) { @@ -149,10 +148,8 @@ NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; [(PCDebuggerView *)debuggerView setDebugger:self]; debuggerWrapper = [[GDBWrapper alloc] init]; - [debuggerView setDebuggerWrapper:debuggerWrapper]; [debuggerWrapper setTextView:debuggerView]; [debuggerWrapper setDebugger:self]; - [debuggerWrapper release]; [debuggerView setFont: [self consoleFont]]; subProcessId = 0; @@ -196,8 +193,6 @@ NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; - (void) initBreakpoints { - id debuggerWrapper; - breakpoints = [[NSMutableArray alloc] init]; /* CRUDE EXAMPLES * TODO FIXME * NSDictionary *dP; @@ -208,15 +203,11 @@ NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; dP = [NSDictionary dictionaryWithObjectsAndKeys: PCBreakTypeByLine, PCBreakTypeKey, @"AppController.m", PCBreakFilename, [NSNumber numberWithInt:100], PCBreakLineNumber, nil]; [breakpoints addObject:dP]; */ - - debuggerWrapper = [debuggerView debuggerWrapper]; [debuggerWrapper setBreakpoints:breakpoints]; } - (void) debuggerSetup { - id debuggerWrapper; - debuggerWrapper = [debuggerView debuggerWrapper]; [debuggerWrapper debuggerSetup]; } @@ -239,6 +230,11 @@ NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; [self setStatus: @"Idle."]; } +- (id )debuggerWrapper +{ + return debuggerWrapper; +} + - (NSWindow *)debuggerWindow { return debuggerWindow; @@ -413,6 +409,7 @@ NSString *PCDBDebuggerStartedNotification = @"PCDBDebuggerStartedNotification"; - (void) dealloc { + [debuggerWrapper release]; [breakpoints release]; [super dealloc]; } diff --git a/Modules/Debuggers/ProjectCenter/PCDebuggerView.h b/Modules/Debuggers/ProjectCenter/PCDebuggerView.h index 62c0f39..226fa54 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebuggerView.h +++ b/Modules/Debuggers/ProjectCenter/PCDebuggerView.h @@ -24,20 +24,16 @@ #import #import -#import "PCDebuggerWrapperProtocol.h" @class PCDebugger; @interface PCDebuggerView : NSTextView { PCDebugger *debugger; - id debuggerWrapper; NSString *currentFile; } - (void) setDebugger:(PCDebugger *)theDebugger; -- (id )debuggerWrapper; -- (void) setDebuggerWrapper:(id ) dw; - (void) setCurrentFile: (NSString *)fileName; - (NSString *) currentFile; diff --git a/Modules/Debuggers/ProjectCenter/PCDebuggerView.m b/Modules/Debuggers/ProjectCenter/PCDebuggerView.m index 89eed1c..31479dd 100644 --- a/Modules/Debuggers/ProjectCenter/PCDebuggerView.m +++ b/Modules/Debuggers/ProjectCenter/PCDebuggerView.m @@ -41,25 +41,10 @@ debugger = theDebugger; } -- (id )debuggerWrapper -{ - return debuggerWrapper; -} - -- (void) setDebuggerWrapper:(id ) dw -{ - if (debuggerWrapper != dw) - { - [debuggerWrapper release]; - debuggerWrapper = dw; - [debuggerWrapper retain]; - } -} - - (void)setFont:(NSFont *)aFont { - [debuggerWrapper setFont:aFont]; + [[debugger debuggerWrapper] setFont:aFont]; } /** @@ -68,7 +53,7 @@ - (void) logString:(NSString *)str newLine:(BOOL)newLine { - [debuggerWrapper logString: str newLine: newLine withColor:[debuggerWrapper debuggerColor]]; + [[debugger debuggerWrapper] logString: str newLine: newLine withColor:[[debugger debuggerWrapper] debuggerColor]]; } - (void) setCurrentFile: (NSString *)fileName @@ -83,7 +68,7 @@ - (void) terminate { - [debuggerWrapper terminate]; + [[debugger debuggerWrapper] terminate]; } - (void) mouseDown: (NSEvent *)event @@ -99,10 +84,10 @@ withArguments: (NSArray *)array logStandardError: (BOOL)logError { - [debuggerWrapper runProgram: path - inCurrentDirectory: directory - withArguments: array - logStandardError: logError]; + [[debugger debuggerWrapper] runProgram: path + inCurrentDirectory: directory + withArguments: array + logStandardError: logError]; } - (void) putString: (NSString *)string @@ -110,12 +95,12 @@ NSAttributedString* attr = [[NSAttributedString alloc] initWithString:string]; [[self textStorage] appendAttributedString:attr]; [self scrollRangeToVisible:NSMakeRange([[self string] length], 0)]; - [debuggerWrapper putString:string]; + [[debugger debuggerWrapper] putString:string]; } - (void) keyDown: (NSEvent*)theEvent { - [debuggerWrapper keyDown:theEvent]; + [[debugger debuggerWrapper] keyDown:theEvent]; } @end