]> granicus.if.org Git - handbrake/commitdiff
MacGui: convert the mac gui to Objective-C ARC.
authorritsuka <damiog@gmail.com>
Tue, 17 Mar 2015 13:56:21 +0000 (13:56 +0000)
committerritsuka <damiog@gmail.com>
Tue, 17 Mar 2015 13:56:21 +0000 (13:56 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@6996 b64f7644-9d1e-0410-96f1-a4d463321fa5

77 files changed:
macosx/DockTextField.h
macosx/DockTextField.m
macosx/HBAddPresetController.h
macosx/HBAddPresetController.m
macosx/HBAdvancedController.h
macosx/HBAdvancedController.m
macosx/HBAppDelegate.m
macosx/HBAttributedStringAdditions.m
macosx/HBAudio.m
macosx/HBAudioController.h
macosx/HBAudioController.m
macosx/HBAudioDefaults.h
macosx/HBAudioDefaults.m
macosx/HBAudioDefaultsController.m
macosx/HBAudioTrack.h
macosx/HBAudioTrack.m
macosx/HBAudioTrackPreset.m
macosx/HBChapterTitlesController.h
macosx/HBChapterTitlesController.m
macosx/HBController.m
macosx/HBCore.m
macosx/HBDVDDetector.m
macosx/HBDistributedArray.m
macosx/HBDockTile.m
macosx/HBFilters+UIAdditions.h
macosx/HBFilters.m
macosx/HBHUDButtonCell.m
macosx/HBHUDView.m
macosx/HBImageAndTextCell.m
macosx/HBJob+UIAdditions.m
macosx/HBJob.h
macosx/HBJob.m
macosx/HBLanguagesSelection.h
macosx/HBLanguagesSelection.m
macosx/HBOutputFileWriter.m
macosx/HBOutputPanelController.m
macosx/HBOutputRedirect.m
macosx/HBPicture+UIAdditions.m
macosx/HBPicture.h
macosx/HBPictureController.h
macosx/HBPictureController.m
macosx/HBPreferencesController.m
macosx/HBPreset.h
macosx/HBPreset.m
macosx/HBPresetsManager.h
macosx/HBPresetsManager.m
macosx/HBPresetsViewController.h
macosx/HBPresetsViewController.m
macosx/HBPreviewController.h
macosx/HBPreviewController.m
macosx/HBPreviewGenerator.h
macosx/HBPreviewGenerator.m
macosx/HBQueueController.h
macosx/HBQueueController.m
macosx/HBQueueOutlineView.m
macosx/HBRange.h
macosx/HBSubtitles.h
macosx/HBSubtitles.m
macosx/HBSubtitlesController.h
macosx/HBSubtitlesController.m
macosx/HBSubtitlesDefaults.h
macosx/HBSubtitlesDefaults.m
macosx/HBSubtitlesDefaultsController.m
macosx/HBTitle.m
macosx/HBTitleSelectionController.m
macosx/HBTreeNode.h
macosx/HBTreeNode.m
macosx/HBUtilities.m
macosx/HBVideo+UIAdditions.m
macosx/HBVideo.h
macosx/HBVideo.m
macosx/HBVideoController.h
macosx/HBVideoController.m
macosx/HandBrake.xcodeproj/project.pbxproj
macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [DEBUG].xcscheme
macosx/HandBrake.xcodeproj/xcshareddata/xcschemes/HandBrake [RELEASE].xcscheme
macosx/NSCodingMacro.h

index 593855b6b5683af93def90641782e21f8cf9facf..ea9342bc49fa3787dff074d581178100f215eb16 100644 (file)
@@ -8,9 +8,9 @@
 
 @interface DockTextField : NSTextField
 
-@property (nonatomic,retain) NSString *textToDisplay;
-@property (nonatomic,retain) NSColor *startColor;
-@property (nonatomic,retain) NSColor *endColor;
+@property (nonatomic,strong) NSString *textToDisplay;
+@property (nonatomic,strong) NSColor *startColor;
+@property (nonatomic,strong) NSColor *endColor;
 
 - (void)changeGradientColors:(NSColor*)startColor endColor:(NSColor*)endColor;
 
index 661dc45a0e6ad70e8106c7c630d7217e8dba3ab9..f576f7964359393bbc083b84a878c76d06553b1d 100644 (file)
@@ -43,7 +43,6 @@
 
     NSGradient *gradient = [[NSGradient alloc] initWithStartingColor:self.startColor endingColor:self.endColor];
     [gradient drawInBezierPath:[NSBezierPath bezierPathWithRoundedRect:blackOutlineFrame xRadius:radius yRadius:radius] angle:90];
-    [gradient release];
     
     NSMutableDictionary *drawStringAttributes = [[NSMutableDictionary alloc] init];
        [drawStringAttributes setValue:[NSColor whiteColor] forKey:NSForegroundColorAttributeName];
@@ -56,7 +55,6 @@
        [stringShadow setShadowOffset:shadowSize];
        [stringShadow setShadowBlurRadius:6];
        [drawStringAttributes setValue:stringShadow forKey:NSShadowAttributeName];
-       [stringShadow release];
        
     NSString *MRString = _textToDisplay;
        NSString *budgetString = [NSString stringWithFormat:@"%@", MRString];
@@ -65,7 +63,6 @@
        centerPoint.x = (dirtyRect.size.width / 2) - (stringSize.width / 2);
        centerPoint.y = dirtyRect.size.height / 2 - (stringSize.height / 2) - 2;
        [budgetString drawAtPoint:centerPoint withAttributes:drawStringAttributes];
-       [drawStringAttributes release];
 }
 
 @end
index f86b2e4f4f52d585c36b5a39ca1b5d325086fbaf..63be604d54bb71fe5bfdab2d2b526036354b6af5 100644 (file)
@@ -14,6 +14,6 @@
 
 - (instancetype)initWithPreset:(HBPreset *)preset videoSize:(NSSize)size;
 
-@property (readonly) HBPreset *preset;
+@property (nonatomic, readonly) HBPreset *preset;
 
 @end
index 82d96585422c7b3f885527a56621ed4ba2700881..cdc0caf149421203fee8cfa164a16e154461df1c 100644 (file)
 
 @interface HBAddPresetController ()
 
-@property (assign) IBOutlet NSTextField *name;
-@property (assign) IBOutlet NSTextField *desc;
+@property (unsafe_unretained) IBOutlet NSTextField *name;
+@property (unsafe_unretained) IBOutlet NSTextField *desc;
 
-@property (assign) IBOutlet NSPopUpButton *picSettingsPopUp;
-@property (assign) IBOutlet NSTextField *picWidth;
-@property (assign) IBOutlet NSTextField *picHeight;
-@property (assign) IBOutlet NSBox *picWidthHeightBox;
+@property (unsafe_unretained) IBOutlet NSPopUpButton *picSettingsPopUp;
+@property (unsafe_unretained) IBOutlet NSTextField *picWidth;
+@property (unsafe_unretained) IBOutlet NSTextField *picHeight;
+@property (unsafe_unretained) IBOutlet NSBox *picWidthHeightBox;
 
-@property (assign) IBOutlet NSButton *picFilters;
+@property (unsafe_unretained) IBOutlet NSButton *picFilters;
 
-@property (retain) HBPreset *preset;
+@property (nonatomic, strong) HBPreset *preset;
 @property NSSize size;
 
 @end
     if (self)
     {
         NSParameterAssert(preset);
-        _preset = [preset retain];
+        _preset = preset;
         _size = size;
     }
     return self;
 }
 
-- (void)dealloc
-{
-    self.preset = nil;;
-    [super dealloc];
-}
-
 - (void)windowDidLoad {
     [super windowDidLoad];
 
         [alert setMessageText:NSLocalizedString(@"Warning!", @"")];
         [alert setInformativeText:NSLocalizedString(@"You need to insert a name for the preset.", @"")];
         [alert runModal];
-        [alert release];
     }
     else
     {
         self.preset.name = self.name.stringValue;
         self.preset.presetDescription = self.desc.stringValue;
 
-        NSMutableDictionary *dict = [[self.preset.content mutableCopy] autorelease];
+        NSMutableDictionary *dict = [self.preset.content mutableCopy];
 
         dict[@"PresetName"] = self.name.stringValue;
         dict[@"PresetDescription"] = self.desc.stringValue;
         // Get whether or not to use the current Picture Filter settings for the preset
         dict[@"UsesPictureFilters"] = @(self.picFilters.state);
 
-        self.preset.content = [[dict copy] autorelease];
+        self.preset.content = [dict copy];
 
         [[self window] orderOut:nil];
         [NSApp endSheet:[self window] returnCode:NSModalResponseContinue];
index 4e590b9c688562f1ecc431d6c0ac8307607fc30a..8cf5a9ccc72d9ce45e144e515e113b1c1b37f874 100644 (file)
@@ -13,7 +13,7 @@
  */
 @interface HBAdvancedController : NSViewController
 
-@property (nonatomic, readwrite, retain) HBVideo *videoSettings;
+@property (nonatomic, readwrite, strong) HBVideo *videoSettings;
 
 @property (nonatomic, readwrite, getter=isHidden) BOOL hidden;
 @property (nonatomic, readwrite, getter=isEnabled) BOOL enabled;
index 8438aaae6f4883ae198898c138298bbcb376f8ff..d4859a6340d7ceaf99d18b396acc3a2ba6de8493 100644 (file)
@@ -94,8 +94,7 @@
 
 - (void)setVideoSettings:(HBVideo *)videoSettings
 {
-    [_videoSettings autorelease];
-    _videoSettings = [videoSettings retain];
+    _videoSettings = videoSettings;
 
     if (_videoSettings)
     {
     }
 }
 
-- (void)dealloc
-{
-    [super dealloc];
-}
 
 /**
  * Populates the option widgets
index 1a78e0815991b82963aaf4c8d3cb29dee8442c55..872d61c3eca9716d178d196c9888de5bc1f931cd 100644 (file)
 
 @interface HBAppDelegate ()
 
-@property (nonatomic, retain) HBPresetsManager *presetsManager;
-@property (assign) IBOutlet NSMenu *presetsMenu;
+@property (nonatomic, strong) HBPresetsManager *presetsManager;
+@property (unsafe_unretained) IBOutlet NSMenu *presetsMenu;
 
-@property (nonatomic, retain) HBPreferencesController *preferencesController;
-@property (nonatomic, retain) HBQueueController *queueController;
+@property (nonatomic, strong) HBPreferencesController *preferencesController;
+@property (nonatomic, strong) HBQueueController *queueController;
 
-@property (nonatomic, retain) HBOutputPanelController *outputPanel;
+@property (nonatomic, strong) HBOutputPanelController *outputPanel;
 
-@property (nonatomic, retain) HBController *mainController;
+@property (nonatomic, strong) HBController *mainController;
 
 @end
 
 
         _outputPanel = [[HBOutputPanelController alloc] init];
 
-        // Lets report the HandBrake version number here to the activity log and text log file
-        NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
-        NSString *versionStringFull = [NSString stringWithFormat:@"Handbrake Version: %@  (%@)", infoDict[@"CFBundleShortVersionString"], infoDict[@"CFBundleVersion"]];
-        [HBUtilities writeToActivityLog: "%s", versionStringFull.UTF8String];
-
         // we init the HBPresetsManager
         NSURL *presetsURL = [[HBUtilities appSupportURL] URLByAppendingPathComponent:@"UserPresets.plist"];
         _presetsManager = [[HBPresetsManager alloc] initWithURL:presetsURL];
                 [self showQueueWindow:nil];
             }
 
-            [alert release];
         }
     }
     else
         [alert setAlertStyle:NSCriticalAlertStyle];
 
         NSInteger result = [alert runModal];
-        [alert release];
 
         if (result == NSAlertFirstButtonReturn)
         {
         [alert addButtonWithTitle:NSLocalizedString(@"Don't Quit", nil)];
         [alert setAlertStyle:NSCriticalAlertStyle];
         NSInteger result = [alert runModal];
-        [alert release];
         if (result == NSAlertFirstButtonReturn)
         {
             return NSTerminateNow;
 {
     [self.presetsManager savePresets];
 
-    [_mainController release];
     _mainController = nil;
-    [_queueController release];
     _queueController = nil;
 
     [HBCore closeGlobal];
                 [manager removeItemAtURL:fileURL error:NULL];
             }
         }
-        [manager release];
     }
 }
 
                 [HBUtilities writeToActivityLog: "Could not remove existing preview at : %s", url.lastPathComponent.UTF8String];
             }
         }
-        [manager release];
     }
 }
 
             [alert setMessageText:@"HandBrake has determined your built in presets are out of date…"];
             [alert setInformativeText:@"HandBrake will now update your built-in presets."];
             [alert runModal];
-            [alert release];
         }
         // when alert is dismissed, go ahead and update the built in presets
         [self.presetsManager generateBuiltInPresets];
             [self.presetsMenu removeItem:item];
         }
     }
-    [menuItems release];
 
     __block NSUInteger i = 0;
     __block BOOL builtInEnded = NO;
                  NSAttributedString *newTitle = [[NSAttributedString alloc] initWithString:[obj name]
                                                                                 attributes:@{NSFontAttributeName: [NSFont boldSystemFontOfSize:14]}];
                  [item setAttributedTitle:newTitle];
-                 [newTitle release];
              }
              // Add a separator line after the last builtIn preset
              if ([obj isBuiltIn] == NO && builtInEnded == NO)
              item.indentationLevel = idx.length - 1;
 
              [self.presetsMenu addItem:item];
-             [item release];
          }
      }];
 }
index fc685482d65770701c7e94449b89196952e026a3..3700eb9644385d221fe313752fa3adb975201343 100644 (file)
@@ -12,8 +12,8 @@
 
 - (void)appendString:(NSString *)aString withAttributes:(NSDictionary *)aDictionary
 {
-    NSAttributedString *s = [[[NSAttributedString alloc] initWithString:aString
-                                                             attributes:aDictionary] autorelease];
+    NSAttributedString *s = [[NSAttributedString alloc] initWithString:aString
+                                                             attributes:aDictionary];
     [self appendAttributedString:s];
 }
 
index 52d52f23083677c4356d7fe32d38ef556fa03d01..c58156443be4921d27a20e469504a5c2076df4c2 100644 (file)
@@ -19,8 +19,8 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
 
 @interface HBAudio () <HBAudioTrackDataSource, HBAudioTrackDelegate>
 
-@property (nonatomic, readonly) NSDictionary *noneTrack;
-@property (nonatomic, readonly) NSArray *masterTrackArray;  // the master list of audio tracks from the title
+@property (nonatomic, readonly, strong) NSDictionary *noneTrack;
+@property (nonatomic, readonly, strong) NSArray *masterTrackArray;  // the master list of audio tracks from the title
 
 @property (nonatomic, readwrite) int container; // initially is the default HB_MUX_MP4
 
@@ -38,9 +38,9 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
         _tracks = [[NSMutableArray alloc] init];
         _defaults = [[HBAudioDefaults alloc] init];
 
-        _noneTrack = [@{keyAudioTrackIndex: @0,
+        _noneTrack = @{keyAudioTrackIndex: @0,
                         keyAudioTrackName: NSLocalizedString(@"None", @"None"),
-                        keyAudioInputCodec: @0} retain];
+                        keyAudioInputCodec: @0};
 
         NSMutableArray *sourceTracks = [NSMutableArray array];
         [sourceTracks addObject:_noneTrack];
@@ -52,23 +52,6 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
     return self;
 }
 
-- (void)dealloc
-{
-    [_tracks release];
-    _tracks = nil;
-
-    [_defaults release];
-    _defaults = nil;
-
-    [_noneTrack release];
-    _noneTrack = nil;
-
-    [_masterTrackArray release];
-    _masterTrackArray = nil;
-
-    [super dealloc];
-}
-
 - (void)addAllTracks
 {
     [self addTracksFromDefaults:YES];
@@ -172,7 +155,6 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
         {
             [self removeObjectFromTracksAtIndex: [self countOfTracks] - 1];
         }
-        [newAudio release];
 
         if (firstOnly)
         {
@@ -245,7 +227,6 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
                 firstTrack = self.defaults.secondaryEncoderMode ? YES : NO;
                 [tracksAdded addIndexes:tracksIndexes];
             }
-            [tracksIndexes release];
         }
 
         // If no preferred Language was found, add standard track 1
@@ -296,7 +277,6 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
     [newAudio setTrack: self.noneTrack];
     [newAudio setDrc: @0.0f];
     [newAudio setGain: @0.0f];
-    [newAudio release];
 }
 
 #pragma mark -
@@ -382,7 +362,7 @@ NSString *HBAudioChangedNotification = @"HBAudioChangedNotification";
                 HBAudioTrack *trackCopy = [obj copy];
                 trackCopy.dataSource = copy;
                 trackCopy.delegate = copy;
-                [copy->_tracks addObject:[trackCopy autorelease]];
+                [copy->_tracks addObject:trackCopy];
             }
         }];
 
index 2dcb9442775d7210f6ebce43d951611b0f6fd66f..6af06693ca6e7184f5a9fbbe626c7cef5cf1fed4 100644 (file)
@@ -13,6 +13,6 @@
  */
 @interface HBAudioController : NSViewController
 
-@property (nonatomic, readwrite, assign) HBAudio *audio;
+@property (nonatomic, readwrite, unsafe_unretained) HBAudio *audio;
 
 @end
index 343bd71244b2f88af87f01c80f3682386d9a3c98..ca051c9da86f0c93cd0f21c6861701185ab680de 100644 (file)
@@ -11,7 +11,7 @@
 
 @interface HBAudioController ()
 
-@property (nonatomic, readwrite, retain) HBAudioDefaultsController *defaultsController;
+@property (nonatomic, readwrite, strong) HBAudioDefaultsController *defaultsController;
 
 @end
 
 
 - (IBAction)showSettingsSheet:(id)sender
 {
-    self.defaultsController = [[[HBAudioDefaultsController alloc] initWithSettings:self.audio.defaults] autorelease];
+    self.defaultsController = [[HBAudioDefaultsController alloc] initWithSettings:self.audio.defaults];
 
-       [NSApp beginSheet:[self.defaultsController window]
-       modalForWindow:[[self view] window]
+       [NSApp beginSheet:self.defaultsController.window
+       modalForWindow:self.view.window
         modalDelegate:self
        didEndSelector:@selector(sheetDidEnd)
           contextInfo:NULL];
index 01a8385175406bfb095934fdb6c8978991f0f109..b1654e6f74f030731275041fe83a38c7e542c29b 100644 (file)
@@ -20,9 +20,9 @@ typedef NS_ENUM(NSUInteger, HBAudioTrackSelectionBehavior) {
 @interface HBAudioDefaults : NSObject <NSCoding, NSCopying, HBPresetCoding>
 
 @property (nonatomic, readwrite) HBAudioTrackSelectionBehavior trackSelectionBehavior;
-@property (nonatomic, readwrite, retain) NSMutableArray *trackSelectionLanguages;
+@property (nonatomic, readwrite, strong) NSMutableArray *trackSelectionLanguages;
 
-@property (nonatomic, readwrite, retain) NSMutableArray *tracksArray;
+@property (nonatomic, readwrite, strong) NSMutableArray *tracksArray;
 
 /**
  *  Adds a new track preset.
index 693b29986531ec12dcf8f4f6bfb273291acc2e07..0454c4b9b4fd1670c3cc764ca1657b54ed773105 100644 (file)
     return self;
 }
 
-- (void)dealloc
-{
-    [_trackSelectionLanguages release];
-    [_tracksArray release];
-    [super dealloc];
-}
-
 - (void)addTrack
 {
     HBAudioTrackPreset *track = [[HBAudioTrackPreset alloc] initWithContainer:self.container];
     [self insertObject:track inTracksArrayAtIndex:[self countOfTracksArray]];
-    [track release];
 }
 
 - (NSArray *)audioEncoderFallbacks
@@ -58,7 +50,7 @@
             [fallbacks addObject:@(audio_encoder->name)];
         }
     }
-    return [fallbacks autorelease];
+    return fallbacks;
 }
 
 - (NSString *)isoCodeForNativeLang:(NSString *)language
         newTrack.drc = [track[@"AudioTrackDRCSlider"] floatValue];
         newTrack.gain = [track[@"AudioTrackGainSlider"] intValue];
         [self.tracksArray addObject:newTrack];
-        [newTrack release];
     }
 }
 
     {
         preset[@"AudioTrackSelectionBehavior"] = @"none";
     }
-    preset[@"AudioLanguageList"] = [[self.trackSelectionLanguages copy] autorelease];
+    preset[@"AudioLanguageList"] = [self.trackSelectionLanguages copy];
 
     // Passthru settings
     preset[@"AudioAllowAACPass"] = @(self.allowAACPassthru);
     }
 
     preset[@"AudioList"] = audioList;
-    [audioList release];
 }
 
 - (void)validateEncoderFallbackForVideoContainer:(int)container
     if (copy)
     {
         copy->_trackSelectionBehavior = _trackSelectionBehavior;
-        [copy->_trackSelectionLanguages release];
         copy->_trackSelectionLanguages = [_trackSelectionLanguages mutableCopy];
 
-        [copy->_tracksArray release];
         copy->_tracksArray = [[NSMutableArray alloc] initWithArray:_tracksArray copyItems:YES];
 
         copy->_allowAACPassthru = _allowAACPassthru;
index 31b8dee6cf00a6cff7ca86a969e540c32c6fd5ff..dc693a3fc36f98ee31ed204e4e0e48c3bbd3edd1 100644 (file)
@@ -12,13 +12,14 @@ static void *HBAudioDefaultsContex = &HBAudioDefaultsContex;
 
 @interface HBAudioDefaultsController ()
 
-@property (nonatomic, readonly) HBAudioDefaults *settings;
+@property (nonatomic, readonly, strong) HBAudioDefaults *settings;
 
-@property (nonatomic, readonly) HBLanguagesSelection *languagesList;
-@property (assign) IBOutlet HBLanguageArrayController *tableController;
-@property (assign) IBOutlet NSButton *showAllButton;
+@property (nonatomic, readonly, strong) HBLanguagesSelection *languagesList;
 
-@property (assign) IBOutlet NSArrayController *tracksController;
+@property (unsafe_unretained) IBOutlet HBLanguageArrayController *tableController;
+@property (unsafe_unretained) IBOutlet NSButton *showAllButton;
+
+@property (unsafe_unretained) IBOutlet NSArrayController *tracksController;
 
 @end
 
@@ -29,7 +30,7 @@ static void *HBAudioDefaultsContex = &HBAudioDefaultsContex;
     self = [super initWithWindowNibName:@"AudioDefaults"];
     if (self)
     {
-        _settings = [settings retain];
+        _settings = settings;
         _languagesList = [[HBLanguagesSelection alloc] initWithLanguages:_settings.trackSelectionLanguages];
     }
     return self;
@@ -91,14 +92,11 @@ static void *HBAudioDefaultsContex = &HBAudioDefaultsContex;
 
 - (void)dealloc
 {
-    [_settings release];
-    [_languagesList release];
 
     @try {
         [self removeObserver:self forKeyPath:@"tableController.showSelectedOnly"];
     } @catch (NSException * __unused exception) {}
 
-    [super dealloc];
 }
 
 @end
index 0cb2788e5b8a84c30a953e56347bfc34f556a8b7..2bad1bd054285b5bb9331fb92ca498d43f0d3dbe 100644 (file)
@@ -33,21 +33,21 @@ extern NSString *keyAudioBitrate;
 
 @interface HBAudioTrack : NSObject <NSCoding, NSCopying>
 
-@property (nonatomic, retain) NSDictionary *track;
-@property (nonatomic, retain) NSDictionary *codec;
-@property (nonatomic, retain) NSDictionary *mixdown;
-@property (nonatomic, retain) NSDictionary *sampleRate;
-@property (nonatomic, retain) NSDictionary *bitRate;
-@property (nonatomic, retain) NSNumber *drc;
-@property (nonatomic, retain) NSNumber *gain;
-@property (nonatomic, retain) NSNumber *videoContainerTag;
-@property (nonatomic, assign) id<HBAudioTrackDataSource> dataSource;
-@property (nonatomic, assign) id<HBAudioTrackDelegate> delegate;
+@property (nonatomic, strong) NSDictionary *track;
+@property (nonatomic, strong) NSDictionary *codec;
+@property (nonatomic, strong) NSDictionary *mixdown;
+@property (nonatomic, strong) NSDictionary *sampleRate;
+@property (nonatomic, strong) NSDictionary *bitRate;
+@property (nonatomic, strong) NSNumber *drc;
+@property (nonatomic, strong) NSNumber *gain;
+@property (nonatomic, strong) NSNumber *videoContainerTag;
+@property (nonatomic, unsafe_unretained) id<HBAudioTrackDataSource> dataSource;
+@property (nonatomic, unsafe_unretained) id<HBAudioTrackDelegate> delegate;
 
-@property (nonatomic, retain) NSMutableArray *codecs;
-@property (nonatomic, retain) NSMutableArray *mixdowns;
+@property (nonatomic, strong) NSMutableArray *codecs;
+@property (nonatomic, strong) NSMutableArray *mixdowns;
 @property (nonatomic, readonly) NSArray *sampleRates;
-@property (nonatomic, retain) NSArray *bitRates;
+@property (nonatomic, strong) NSArray *bitRates;
 @property (nonatomic, readonly) BOOL enabled;
 
 - (void) setTrackFromIndex: (int) aValue;
index 5da6260f0e3412a5169400c9b6f0185271f94da8..0c20f3437a4a6581dd2c7464b55ffc711c67ed6d 100644 (file)
@@ -324,37 +324,19 @@ static NSMutableArray *masterBitRateArray = nil;
     return masterSampleRateArray;
 }
 
-- (void) dealloc
-{
-    [_track release];
-    [_codec release];
-    [_mixdown release];
-    [_sampleRate release];
-    [_bitRate release];
-    [_drc release];
-    [_gain release];
-    [_videoContainerTag release];
-    [_codecs release];
-    [_mixdowns release];
-    [_bitRates release];
-
-    [super dealloc];
-}
-
 #pragma mark -
 #pragma mark Setters
 
 - (void)setVideoContainerTag:(NSNumber *)videoContainerTag
 {
-    [_videoContainerTag autorelease];
-    _videoContainerTag = [videoContainerTag retain];
+    _videoContainerTag = videoContainerTag;
     [self updateCodecs];
 }
 
 - (void)setTrack:(NSDictionary *)track
 {
     NSDictionary *oldValue = _track;
-    _track = [track retain];
+    _track = track;
     if (nil != _track)
     {
         [self updateCodecs];
@@ -372,29 +354,25 @@ static NSMutableArray *masterBitRateArray = nil;
             [self.delegate settingTrackToNone: self];
         }
     }
-    [oldValue release];
 }
 
 - (void)setCodec:(NSDictionary *)codec
 {
-    [_codec autorelease];
-    _codec = [codec retain];
+    _codec = codec;
     [self updateMixdowns: YES];
     [self updateBitRates: YES];
 }
 
 - (void)setMixdown:(NSDictionary *)mixdown
 {
-    [_mixdown autorelease];
-    _mixdown = [mixdown retain];
+    _mixdown = mixdown;
     [self updateBitRates: YES];
     [self.delegate mixdownChanged];
 }
 
 - (void)setSampleRate:(NSDictionary *)sampleRate
 {
-    [_sampleRate autorelease];
-    _sampleRate = [sampleRate retain];
+    _sampleRate = sampleRate;
     [self updateBitRates: NO];
 }
 
@@ -650,4 +628,3 @@ static NSMutableArray *masterBitRateArray = nil;
 }
 
 @end
-
index da7fd674876428fb56c551ef9d0e1a6c27152ad9..80bcf918df7a8e30acd81e8d350f5c5051145c0d 100644 (file)
@@ -169,7 +169,7 @@ static void *HBAudioEncoderContex = &HBAudioEncoderContex;
     {
         [encoders addObject:@(audio_encoder->name)];
     }
-    return [encoders autorelease];
+    return encoders;
 }
 
 - (NSArray *)mixdowns
@@ -184,7 +184,7 @@ static void *HBAudioEncoderContex = &HBAudioEncoderContex;
             [mixdowns addObject:@(mixdown->name)];
         }
     }
-    return [mixdowns autorelease];
+    return mixdowns;
 }
 
 - (NSArray *)samplerates
@@ -196,7 +196,7 @@ static void *HBAudioEncoderContex = &HBAudioEncoderContex;
     {
         [samplerates addObject:@(audio_samplerate->name)];
     }
-    return [samplerates autorelease];
+    return samplerates;
 }
 
 - (NSArray *)bitrates
@@ -219,7 +219,7 @@ static void *HBAudioEncoderContex = &HBAudioEncoderContex;
             [bitrates addObject:@(audio_bitrate->name)];
         }
     }
-    return [bitrates autorelease];
+    return bitrates;
 }
 
 + (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key
index 89ce440c4cec9ae3670458d39cf38bda0c20b0c9..5cf628a49736719d16b2f7e4145d5b0ed96c4a93 100644 (file)
@@ -13,6 +13,6 @@
  */
 @interface HBChapterTitlesController : NSViewController
 
-@property (nonatomic, readwrite, assign) HBJob *job;
+@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
 
 @end
index 582e9bd52973894edc6cb3e290884e8591b4d7a2..b3daebc9efa02f4e4467233c6aff224bfb1e8d0a 100644 (file)
@@ -13,7 +13,7 @@
        IBOutlet NSTableColumn       * fChapterTableNameColumn;
 }
 
-@property (nonatomic, readwrite, retain) NSMutableArray *chapterTitles;
+@property (nonatomic, readwrite, strong) NSMutableArray *chapterTitles;
 
 @end
 
     return self;
 }
 
-- (void)dealloc
-{
-    [_chapterTitles release];
-    [super dealloc];
-}
-
 - (void)setJob:(HBJob *)job
 {
     _job = job;
@@ -134,8 +128,7 @@ a timer to avoid interfering with the chain of events that handles the edit. */
         {
             chapterName = [[NSString alloc] initWithContentsOfURL:[panel URL] encoding:NSUTF8StringEncoding error:NULL];
             chaptersArray = [chapterName componentsSeparatedByString:@"\n"];
-            [chapterName release];
-            chaptersMutableArray = [[chaptersArray mutableCopy] autorelease];
+            chaptersMutableArray = [chaptersArray mutableCopy];
             chapters = [self numberOfRowsInTableView:fChapterTable];
             if ([chaptersMutableArray count] > 0)
             {
index 85d0fd12e025f705ecad068333ecc1c02613d43a..e320b3da7d3df5e321308a8041d6468f61f27099 100644 (file)
 
 @interface HBController () <HBPresetsViewControllerDelegate, HBPreviewControllerDelegate, HBPictureControllerDelegate, HBTitleSelectionDelegate>
 
-@property (assign) IBOutlet NSView *openTitleView;
+@property (unsafe_unretained) IBOutlet NSView *openTitleView;
 @property (nonatomic, readwrite) BOOL scanSpecificTitle;
 @property (nonatomic, readwrite) NSInteger scanSpecificTitleIdx;
 
-@property (nonatomic, readwrite, retain) HBTitleSelectionController *titlesSelectionController;
+@property (nonatomic, readwrite, strong) HBTitleSelectionController *titlesSelectionController;
 
 /**
  * The name of the source, it might differ from the source
 @property (nonatomic, copy) NSString *browsedSourceDisplayName;
 
 /// The current job.
-@property (nonatomic, retain) HBJob *job;
+@property (nonatomic, strong) HBJob *job;
 
 /// The job to be applied from the queue.
-@property (nonatomic, retain) HBJob *jobFromQueue;
+@property (nonatomic, strong) HBJob *jobFromQueue;
 
 /// The current selected preset.
-@property (nonatomic, retain) HBPreset *selectedPreset;
+@property (nonatomic, strong) HBPreset *selectedPreset;
 @property (nonatomic) BOOL customPreset;
 
 ///  The HBCore used for scanning.
-@property (nonatomic, retain) HBCore *core;
+@property (nonatomic, strong) HBCore *core;
 
-@property (nonatomic, readwrite) NSColor *labelColor;
+@property (unsafe_unretained, nonatomic, readwrite) NSColor *labelColor;
 
 @end
 
@@ -82,7 +82,7 @@
         fQueueController.controller = self;
 
         presetManager = manager;
-        _selectedPreset = [presetManager.defaultPreset retain];
+        _selectedPreset = presetManager.defaultPreset;
     }
 
     return self;
 - (void)dealloc
 {
     [[NSNotificationCenter defaultCenter] removeObserver:self];
-
-    [fPreviewController release];
-    [fPictureController release];
-
-    [_browsedSourceDisplayName release];
-    [_job release];
-    [_jobFromQueue release];
-    [_selectedPreset release];
-    [_labelColor release];
-    [_core release];
-
-    [super dealloc];
 }
 
 - (void)windowDidLoad
                 if (![[fMainTabView tabViewItems] containsObject:fAdvancedTab])
                 {
                     [fMainTabView insertTabViewItem:fAdvancedTab atIndex:3];
-                    [fAdvancedTab release];
                 }
             }
             else
             {
-                [fAdvancedTab retain];
                 [fMainTabView removeTabViewItem:fAdvancedTab];
             }
         }
     [self removeJobObservers];
 
     // Retain the new job
-    [_job autorelease];
-    _job = [job retain];
+    _job = job;
 
     // Set the jobs info to the view controllers
     fPictureController.picture = job.picture;
 
     if (job)
     {
-        fPreviewController.generator = [[[HBPreviewGenerator alloc] initWithCore:self.core job:job] autorelease];
+        fPreviewController.generator = [[HBPreviewGenerator alloc] initWithCore:self.core job:job];
     }
     else
     {
         [alert addButtonWithTitle:@"Attempt Scan Anyway"];
         [NSApp requestUserAttention:NSCriticalRequest];
         NSInteger status = [alert runModal];
-        [alert release];
 
         if (status == NSAlertFirstButtonReturn)
         {
     }
     else
     {
-        self.job = [[[HBJob alloc] initWithTitle:title andPreset:self.selectedPreset] autorelease];
+        self.job = [[HBJob alloc] initWithTitle:title andPreset:self.selectedPreset];
         self.job.destURL = [self destURLForJob:self.job];
     }
 
  */
 - (void)doAddToQueue
 {
-    [fQueueController addJob:[[self.job copy] autorelease]];
+    [fQueueController addJob:[self.job copy]];
 }
 
 /**
         [alert setMessageText:NSLocalizedString(@"Warning!", @"")];
         [alert setInformativeText:NSLocalizedString(@"This is not a valid destination directory!", @"")];
         [alert runModal];
-        [alert release];
         return;
        }
 
         [alert setAlertStyle:NSCriticalAlertStyle];
 
         [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddToQueueAlertDone:returnCode:contextInfo:) contextInfo:NULL];
-        [alert release];
     }
     else if ([fQueueController jobExistAtURL:self.job.destURL])
     {
         [alert setAlertStyle:NSCriticalAlertStyle];
 
         [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddToQueueAlertDone:returnCode:contextInfo:) contextInfo:NULL];
-        [alert release];
     }
     else
     {
         [alert setMessageText:NSLocalizedString(@"Warning!", @"")];
         [alert setInformativeText:NSLocalizedString(@"This is not a valid destination directory!", @"")];
         [alert runModal];
-        [alert release];
         return;
     }
 
 
         [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overWriteAlertDone:returnCode:contextInfo:) contextInfo:NULL];
         // overWriteAlertDone: will be called when the alert is dismissed. It will call doRip.
-        [alert release];
     }
     else
     {
 
 - (IBAction)addTitlesToQueue:(id)sender
 {
-    self.titlesSelectionController = [[[HBTitleSelectionController alloc] initWithTitles:self.core.titles delegate:self] autorelease];
+    self.titlesSelectionController = [[HBTitleSelectionController alloc] initWithTitles:self.core.titles delegate:self];
 
     [NSApp beginSheet:self.titlesSelectionController.window
        modalForWindow:self.window
             job.destURL = [self destURLForJob:job];
             job.title = nil;
             [jobs addObject:job];
-            [job release];
         }
     }
 
             break;
         }
     }
-    [destinations release];
 
     if (fileExists)
     {
         [alert addButtonWithTitle:NSLocalizedString(@"Overwrite", nil)];
         [alert setAlertStyle:NSCriticalAlertStyle];
 
-        [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddTitlesToQueueAlertDone:returnCode:contextInfo:) contextInfo:jobs];
-        [alert release];
+        [alert beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(overwriteAddTitlesToQueueAlertDone:returnCode:contextInfo:) contextInfo:(__bridge void *)(jobs)];
     }
     else
     {
         [fQueueController addJobsFromArray:jobs];
-        [jobs release];
     }
 }
 
 {
     if (returnCode == NSAlertSecondButtonReturn)
     {
-        NSArray *jobs = (NSArray *)contextInfo;
+        NSArray *jobs = (__bridge NSArray *)contextInfo;
         [fQueueController addJobsFromArray:jobs];
-        [jobs release];
     }
 }
 
     HBAddPresetController *addPresetController = [[HBAddPresetController alloc] initWithPreset:[self createPresetFromCurrentSettings]
                                                                                      videoSize:NSMakeSize(self.job.picture.width, self.job.picture.height)];
 
-    [NSApp beginSheet:addPresetController.window modalForWindow:self.window modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:addPresetController];
+    [NSApp beginSheet:addPresetController.window modalForWindow:self.window modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:(__bridge void *)(addPresetController)];
 }
 
 - (void)sheetDidEnd:(NSWindow *)sheet returnCode:(NSInteger)returnCode contextInfo:(void *)contextInfo
 {
-    HBAddPresetController *addPresetController = (HBAddPresetController *)contextInfo;
+    HBAddPresetController *addPresetController = (HBAddPresetController *)CFBridgingRelease(contextInfo);
 
     if (returnCode == NSModalResponseContinue)
     {
         [presetManager addPreset:addPresetController.preset];
     }
 
-    [addPresetController release];
 }
 
 - (HBPreset *)createPresetFromCurrentSettings
 
     [self.job applyCurrentSettingsToPreset:preset];
 
-    return [[[HBPreset alloc] initWithName:preset[@"PresetName"] content:preset builtIn:NO] autorelease];
+    return [[HBPreset alloc] initWithName:preset[@"PresetName"] content:preset builtIn:NO];
 }
 
 #pragma mark -
                 [[NSFileManager defaultManager] createFileAtPath:[exportPresetsFile path] contents:nil attributes:nil];
             }
 
-            NSMutableArray *presetsToExport = [[[NSMutableArray alloc] initWithContentsOfURL:exportPresetsFile] autorelease];
+            NSMutableArray *presetsToExport = [[NSMutableArray alloc] initWithContentsOfURL:exportPresetsFile];
             if (presetsToExport == nil)
             {
                 presetsToExport = [[NSMutableArray alloc] init];
             // actually add the new preset to our presets array
             [presetManager addPresetFromDictionary:dict];
         }
-        [presetsToImport autorelease];
     }];
 }
 
index 6d6934fc536377d5d30cc16696c5d34bd2994745..bc37a128e2715b630ea197b66b6e7ee2b600151b 100644 (file)
@@ -43,7 +43,7 @@ static void hb_error_handler(const char *errmsg)
 @property (nonatomic, readonly) dispatch_queue_t updateTimerQueue;
 
 /// Current scanned titles.
-@property (nonatomic, readwrite, retain) NSArray *titles;
+@property (nonatomic, readwrite, strong) NSArray *titles;
 
 /// Progress handler.
 @property (nonatomic, readwrite, copy) HBCoreProgressHandler progressHandler;
@@ -72,7 +72,6 @@ static void hb_error_handler(const char *errmsg)
 + (void)closeGlobal
 {
     NSAssert(globalInitialized, @"[HBCore closeGlobal] global closed but not initialized");
-    [errorHandler release];
     hb_global_close();
 }
 
@@ -109,7 +108,6 @@ static void hb_error_handler(const char *errmsg)
         _hb_handle = hb_init(loggingLevel, 0);
         if (!_hb_handle)
         {
-            [self release];
             return nil;
         }
     }
@@ -129,14 +127,6 @@ static void hb_error_handler(const char *errmsg)
     hb_close(&_hb_handle);
     _hb_handle = NULL;
     free(_hb_state);
-
-    [_name release];
-    _name = nil;
-
-    [_titles release];
-    _titles = nil;
-
-    [super dealloc];
 }
 
 #pragma mark - Scan
@@ -255,10 +245,10 @@ static void hb_error_handler(const char *errmsg)
     for (int i = 0; i < hb_list_count(title_set->list_title); i++)
     {
         hb_title_t *title = (hb_title_t *) hb_list_item(title_set->list_title, i);
-        [titles addObject:[[[HBTitle alloc] initWithTitle:title featured:(title->index == title_set->feature)] autorelease]];
+        [titles addObject:[[HBTitle alloc] initWithTitle:title featured:(title->index == title_set->feature)]];
     }
 
-    self.titles = [[titles copy] autorelease];
+    self.titles = [titles copy];
 
     [HBUtilities writeToActivityLog:"%s scan done", self.name.UTF8String];
 
@@ -527,10 +517,9 @@ static void hb_error_handler(const char *errmsg)
     {
         // Retain the completion block, because it could be replaced
         // inside the same block.
-        HBCoreCompletionHandler completionHandler = [self.completionHandler retain];
+        HBCoreCompletionHandler completionHandler = self.completionHandler;
         self.completionHandler = nil;
         completionHandler(result);
-        [completionHandler release];
     }
 }
 
index 05ff786b11dc450069581ffdd23137ec5d83ffd9..8db9d36f21ab509a86a1849d28faff1848d41b66 100644 (file)
@@ -31,7 +31,7 @@
 
 + (HBDVDDetector *)detectorForPath: (NSString *)aPath
 {
-    return [[[self alloc] initWithPath:aPath] autorelease];
+    return [[self alloc] initWithPath:aPath];
 }
 
 
     NSAssert(aPath, @"nil string passed to drive detector.");
        if( self = [super init] )       
        {
-        path = [aPath retain];
+        path = aPath;
         bsdName = nil;
        }
     return self;
 }
 
 
-- (void)dealloc
-{
-    [path release];
-    path = nil;
-    [bsdName release];
-    bsdName = nil;
-    [super dealloc];
-}
-
-
 - (BOOL)isVideoDVD
 {
     return ( [self pathHasVideoTS] && [self deviceIsDVD] );
@@ -90,7 +80,7 @@
         bsdName = [bsdName substringFromIndex:5];
     }
 
-    return [bsdName retain];
+    return bsdName;
 }
 
 
index aef8dc4be470b5a10cc404901cdefd512b0733f0..a8764cfbb8240b859a2591365025d529f05bd697 100644 (file)
@@ -18,8 +18,8 @@
 
 - (instancetype)initWithObject:(id)object;
 
-@property (nonatomic, retain) id representedObject;
-@property (nonatomic, readonly) NSString *uuid;
+@property (nonatomic, strong) id representedObject;
+@property (unsafe_unretained, nonatomic, readonly) NSString *uuid;
 
 @end
 
 
 - (instancetype)initWithObject:(id)object
 {
-    _representedObject = [object retain];
+    _representedObject = object;
 
     return self;
 }
 
-- (void)dealloc
-{
-    [_representedObject release];
-    [super dealloc];
-}
-
 - (NSMethodSignature *)methodSignatureForSelector:(SEL)selector
 {
     return [self.representedObject methodSignatureForSelector:selector];
@@ -113,20 +107,13 @@ NSString *HBDistributedArraWrittenToDisk = @"HBDistributedArraWrittenToDisk";
 
 - (void)dealloc
 {
+    [[NSDistributedNotificationCenter defaultCenter] removeObserver:self];
+
     [self lock];
     [self synchronize];
     [self unlock];
 
-    [_fileURL release];
-    _fileURL = nil;
-    [_array release];
-    _array = nil;
-
-    [[NSDistributedNotificationCenter defaultCenter] removeObserver:self];
-
     sem_close(_mutex);
-
-    [super dealloc];
 }
 
 - (void)lock
@@ -277,7 +264,7 @@ NSString *HBDistributedArraWrittenToDisk = @"HBDistributedArraWrittenToDisk";
     }
     else
     {
-        return [[[HBProxyArrayObject alloc] initWithObject:anObject] autorelease];
+        return [[HBProxyArrayObject alloc] initWithObject:anObject];
     }
 }
 
index bfbed37b7ae43deda312e9f0c9c968638dae865e..f03e2fdff3fadca74a1084f54754b89caac19417 100644 (file)
@@ -13,10 +13,10 @@ NSString *dockTilePercentFormat = @"%2.1f%%";
 
 @interface HBDockTile ()
 
-@property (nonatomic, retain) NSDockTile *dockTile;
-@property (nonatomic, retain) NSImage *image;
-@property (nonatomic, retain) DockTextField * percentField;
-@property (nonatomic, retain) DockTextField * timeField;
+@property (nonatomic, strong) NSDockTile *dockTile;
+@property (nonatomic, strong) NSImage *image;
+@property (nonatomic, strong) DockTextField * percentField;
+@property (nonatomic, strong) DockTextField * timeField;
 
 @end
 
@@ -27,8 +27,8 @@ NSString *dockTilePercentFormat = @"%2.1f%%";
     self = [super init];
     if (self)
     {
-        _dockTile = [dockTile retain];
-        _image = [image retain];
+        _dockTile = dockTile;
+        _image = image;
 
         NSImageView *iv = [[NSImageView alloc] init];
         [iv setImage:_image];
@@ -41,21 +41,10 @@ NSString *dockTilePercentFormat = @"%2.1f%%";
         _timeField = [[DockTextField alloc] initWithFrame:NSMakeRect(0.0f, 0.0f, [dockTile size].width, 30.0f)];
         [_timeField changeGradientColors:[NSColor colorWithDeviceRed:0.6f green:0.4f blue:0.4f alpha:1.0f] endColor:[NSColor colorWithDeviceRed:0.4f green:0.2f blue:0.2f alpha:1.0f]];
         [iv addSubview:_timeField];
-        [iv release];
     }
     return self;
 }
 
-- (void)dealloc
-{
-    [_dockTile release];
-    [_image release];
-    [_percentField release];
-    [_timeField release];
-
-    [super dealloc];
-}
-
 - (void)updateDockIcon:(double)progress withETA:(NSString *)etaStr
 {
     if (progress < 0.0 || progress > 1.0)
index 8b79a20567733eea8f13c0ff21a3dabc9e924431..c4dbaeaa7ece40a292da7fc711cfdc2fdf9ce907 100644 (file)
@@ -37,7 +37,7 @@
  */
 
 @interface HBGenericDictionaryTransformer : NSValueTransformer
-@property (nonatomic, retain) NSDictionary *dict;
+@property (nonatomic, strong) NSDictionary *dict;
 @end
 
 @interface HBDenoisePresetTransformer : HBGenericDictionaryTransformer
index 8bd627d96ba0643e0579abb0dc40778955422ff3..90f3b932d937563587f17606f80b9aac74364375 100644 (file)
@@ -25,21 +25,21 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 {
     if (self == [HBFilters class])
     {
-        _HandBrake_denoiseTypesDict = [@{NSLocalizedString(@"Off", nil):      @"off",
+        _HandBrake_denoiseTypesDict = @{NSLocalizedString(@"Off", nil):      @"off",
                                NSLocalizedString(@"NLMeans", nil):  @"nlmeans",
-                               NSLocalizedString(@"HQDN3D", nil):   @"hqdn3d"} retain];
+                               NSLocalizedString(@"HQDN3D", nil):   @"hqdn3d"};
 
-        _HandBrake_denoisePresetsDict = [@{NSLocalizedString(@"Custom", nil):     @"none",
+        _HandBrake_denoisePresetsDict = @{NSLocalizedString(@"Custom", nil):     @"none",
                                  NSLocalizedString(@"Ultralight", nil): @"ultralight",
                                  NSLocalizedString(@"Light", nil):      @"light",
                                  NSLocalizedString(@"Medium", nil) :    @"medium",
-                                 NSLocalizedString(@"Strong", nil) :    @"strong"} retain];
+                                 NSLocalizedString(@"Strong", nil) :    @"strong"};
 
-        _HandBrake_nlmeansTunesDict = [@{NSLocalizedString(@"None", nil):         @"none",
+        _HandBrake_nlmeansTunesDict = @{NSLocalizedString(@"None", nil):         @"none",
                                NSLocalizedString(@"Film", nil):         @"film",
                                NSLocalizedString(@"Grain", nil):        @"grain",
                                NSLocalizedString(@"High Motion", nil):  @"highmotion",
-                               NSLocalizedString(@"Animation", nil) :   @"animation"} retain];
+                               NSLocalizedString(@"Animation", nil) :   @"animation"};
     }
 }
 
@@ -82,8 +82,6 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 // Override setter to avoid nil values.
 - (void)setDetelecineCustomString:(NSString *)detelecineCustomString
 {
-    [_detelecineCustomString autorelease];
-
     if (detelecineCustomString)
     {
         _detelecineCustomString = [detelecineCustomString copy];
@@ -104,8 +102,6 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 
 - (void)setDeinterlaceCustomString:(NSString *)deinterlaceCustomString
 {
-    [_deinterlaceCustomString autorelease];
-
     if (deinterlaceCustomString)
     {
         _deinterlaceCustomString = [deinterlaceCustomString copy];
@@ -126,8 +122,6 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 
 - (void)setDecombCustomString:(NSString *)decombCustomString
 {
-    [_decombCustomString autorelease];
-
     if (decombCustomString)
     {
         _decombCustomString = [decombCustomString copy];
@@ -142,8 +136,6 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 
 - (void)setDenoise:(NSString *)denoise
 {
-    [_denoise autorelease];
-
     if (denoise)
     {
         _denoise = [denoise copy];
@@ -158,8 +150,6 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 
 - (void)setDenoisePreset:(NSString *)denoisePreset
 {
-    [_denoisePreset autorelease];
-
     if (denoisePreset)
     {
         _denoisePreset = [denoisePreset copy];
@@ -174,8 +164,6 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 
 - (void)setDenoiseTune:(NSString *)denoiseTune
 {
-    [_denoiseTune autorelease];
-
     if (denoiseTune)
     {
         _denoiseTune = [denoiseTune copy];
@@ -190,8 +178,6 @@ NSDictionary *_HandBrake_nlmeansTunesDict;
 
 - (void)setDenoiseCustomString:(NSString *)denoiseCustomString
 {
-    [_denoiseCustomString autorelease];
-
     if (denoiseCustomString)
     {
         _denoiseCustomString = [denoiseCustomString copy];
index 245ebb125a074a36934b3b7a797416a026d34989..3464a7499926619b4470d0a4ac15190a793a4781 100644 (file)
@@ -10,9 +10,9 @@
 
 - (NSRect)drawTitle:(NSAttributedString *)title withFrame:(NSRect)frame inView:(NSView *)controlView
 {
-    NSAttributedString *attrLabel = [[[NSAttributedString alloc] initWithString:[title string]
+    NSAttributedString *attrLabel = [[NSAttributedString alloc] initWithString:[title string]
                                                                     attributes:@{ NSFontAttributeName:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:self.controlSize]],
-                                                                                  NSForegroundColorAttributeName: [NSColor whiteColor]}] autorelease];
+                                                                                  NSForegroundColorAttributeName: [NSColor whiteColor]}];
 
     return [super drawTitle:attrLabel withFrame:frame inView:controlView];
 }
index e80e79093629f1dc95351b6228eb1dda500bec0b..a183faf8e8dfd24ec9cc12eb418701a767699b93 100644 (file)
@@ -54,7 +54,6 @@
     {
         // If NSVisualEffectView class is loaded
         // release ourself and return a NSVisualEffectView instance instead.
-        [self release];
         self = [[NSClassFromString(@"NSVisualEffectView") alloc] initWithFrame:frame];
         if (self)
         {
index eebe2efca2cd1afe6013542566e6fe19894657a5..57a4b023b81e69c3c63aed939298959c489f7cb9 100644 (file)
@@ -91,17 +91,10 @@ scaleProportionally(NSSize imageSize, NSRect canvasRect)
     return self; 
 }
 
-- (void)dealloc
-{
-    [image release];
-    image = nil;
-    [super dealloc];
-}
-
 - copyWithZone:(NSZone *)zone
 {
     HBImageAndTextCell *cell = (HBImageAndTextCell *)[super copyWithZone:zone];
-    cell->image = [image retain];
+    cell->image = image;
     return cell;
 }
 
@@ -109,8 +102,7 @@ scaleProportionally(NSSize imageSize, NSRect canvasRect)
 {
     if (anImage != image)
     {
-        [image release];
-        image = [anImage retain];
+        image = anImage;
     }
 }
 
index d35565d79c277e5a2c8e5b91d2ca3a62bd360444..500026a3ab174428db10c2bfb27e8636e0891ca1 100644 (file)
@@ -69,7 +69,7 @@ static NSDictionary            *shortHeightAttr;
         [containers addObject:title];
     }
 
-    return [[containers copy] autorelease];
+    return [containers copy];
 }
 
 - (void)initStyles
@@ -77,22 +77,22 @@ static NSDictionary            *shortHeightAttr;
     if (!ps)
     {
         // Attributes
-        ps = [[[NSParagraphStyle defaultParagraphStyle] mutableCopy] retain];
+        ps = [[NSParagraphStyle defaultParagraphStyle] mutableCopy];
         [ps setHeadIndent: 40.0];
         [ps setParagraphSpacing: 1.0];
         [ps setTabStops:@[]];    // clear all tabs
-        [ps addTabStop: [[[NSTextTab alloc] initWithType: NSLeftTabStopType location: 20.0] autorelease]];
+        [ps addTabStop: [[NSTextTab alloc] initWithType: NSLeftTabStopType location: 20.0]];
 
-        detailAttr = [@{NSFontAttributeName: [NSFont systemFontOfSize:10.0],
-                        NSParagraphStyleAttributeName: ps} retain];
+        detailAttr = @{NSFontAttributeName: [NSFont systemFontOfSize:10.0],
+                        NSParagraphStyleAttributeName: ps};
 
-        detailBoldAttr = [@{NSFontAttributeName: [NSFont boldSystemFontOfSize:10.0],
-                            NSParagraphStyleAttributeName: ps} retain];
+        detailBoldAttr = @{NSFontAttributeName: [NSFont boldSystemFontOfSize:10.0],
+                            NSParagraphStyleAttributeName: ps};
 
-        titleAttr = [@{NSFontAttributeName: [NSFont systemFontOfSize:[NSFont systemFontSize]],
-                       NSParagraphStyleAttributeName: ps} retain];
+        titleAttr = @{NSFontAttributeName: [NSFont systemFontOfSize:[NSFont systemFontSize]],
+                       NSParagraphStyleAttributeName: ps};
 
-        shortHeightAttr = [@{NSFontAttributeName: [NSFont systemFontOfSize:2.0]} retain];
+        shortHeightAttr = @{NSFontAttributeName: [NSFont systemFontOfSize:2.0]};
     }
 }
 
@@ -150,7 +150,7 @@ static NSDictionary            *shortHeightAttr;
             }
         }
 
-        [finalString appendString:[NSString stringWithFormat:@"%@", self.fileURL.path.lastPathComponent] withAttributes:titleAttr];
+        [finalString appendString:[NSString stringWithFormat:@"%@", self.description] withAttributes:titleAttr];
 
         // lets add the output file name to the title string here
         NSString *outputFilenameString = self.destURL.lastPathComponent;
@@ -459,7 +459,7 @@ static NSDictionary            *shortHeightAttr;
         }
     }
     
-    return [finalString autorelease];
+    return finalString;
 }
 
 @end
index 046bebeaa7e2a777aeed9b1c2f9478057ae2be4f..673592ee1e84282d259a72762753c0fa7fafa8b6 100644 (file)
@@ -17,6 +17,8 @@
 #import "HBAudio.h"
 #import "HBSubtitles.h"
 
+#import "HBDistributedArray.h"
+
 extern NSString *HBContainerChangedNotification;
 extern NSString *HBChaptersChangedNotification;
 
@@ -33,32 +35,25 @@ typedef NS_ENUM(NSUInteger, HBJobState){
 /**
  * HBJob
  */
-@interface HBJob : NSObject <NSCoding, NSCopying>
+@interface HBJob : NSObject <NSCoding, NSCopying, HBUniqueObject>
 
 - (instancetype)initWithTitle:(HBTitle *)title andPreset:(HBPreset *)preset;
 
 - (void)applyPreset:(HBPreset *)preset;
 - (void)applyCurrentSettingsToPreset:(NSMutableDictionary *)dict;
 
-/**
- *  Current state of the job.
- */
+/// Current state of the job.
 @property (nonatomic, readwrite) HBJobState state;
 
-@property (nonatomic, readwrite, copy) NSString *presetName;
-
 @property (nonatomic, readwrite, assign) HBTitle *title;
 @property (nonatomic, readonly) int titleIdx;
-@property (nonatomic, readonly) NSString *uuid;
 
-/**
- *  The file URL of the source.
- */
+@property (nonatomic, readwrite, copy) NSString *presetName;
+
+/// The file URL of the source.
 @property (nonatomic, readonly) NSURL *fileURL;
 
-/**
- *  The file URL at which the new file will be created.
- */
+/// The file URL at which the new file will be created.
 @property (nonatomic, readwrite, copy) NSURL *destURL;
 
 // Job settings
index d991d970939df73f2003841fdbe9801c95afe571..778e36210f5ffd0fe7a78f329d74aaa501386f3c 100644 (file)
 NSString *HBContainerChangedNotification = @"HBContainerChangedNotification";
 NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
 
+@interface HBJob ()
+@property (nonatomic, readonly) NSString *name;
+@end
+
 @implementation HBJob
 
+@synthesize uuid = _uuid;
+
 - (instancetype)initWithTitle:(HBTitle *)title andPreset:(HBPreset *)preset
 {
     self = [super init];
@@ -29,7 +35,8 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
         _title = title;
         _titleIdx = title.index;
 
-        _fileURL = [[NSURL fileURLWithPath:@(title.hb_title->path)] retain];
+        _name = [title.name copy];
+        _fileURL = [NSURL fileURLWithPath:@(title.hb_title->path)];
 
         _container = HB_MUX_MP4;
         _angle = 1;
@@ -44,7 +51,7 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
 
         _chapterTitles = [title.chapters mutableCopy];
 
-        _uuid = [[[NSUUID UUID] UUIDString] retain];
+        _uuid = [[NSUUID UUID] UUIDString];
 
         [self applyPreset:preset];
     }
@@ -132,25 +139,9 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
     return retval;
 }
 
-- (void)dealloc
+- (NSString *)description
 {
-    [_audio release];
-    [_subtitles release];
-
-    [_fileURL release];
-    [_destURL release];
-
-    [_range release];
-    [_video release];
-    [_picture release];
-    [_filters release];
-
-    [_chapterTitles release];
-
-    [_uuid release];
-    [_presetName release];
-
-    [super dealloc];
+    return self.name;
 }
 
 #pragma mark - NSCopying
@@ -162,9 +153,10 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
     if (copy)
     {
         copy->_state = HBJobStateReady;
+        copy->_name = [_name copy];
         copy->_presetName = [_presetName copy];
         copy->_titleIdx = _titleIdx;
-        copy->_uuid = [[[NSUUID UUID] UUIDString] retain];
+        copy->_uuid = [[NSUUID UUID] UUIDString];
 
         copy->_fileURL = [_fileURL copy];
         copy->_destURL = [_destURL copy];
@@ -198,6 +190,7 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
     [coder encodeInt:1 forKey:@"HBVideoVersion"];
 
     encodeInt(_state);
+    encodeObject(_name);
     encodeObject(_presetName);
     encodeInt(_titleIdx);
     encodeObject(_uuid);
@@ -227,6 +220,7 @@ NSString *HBChaptersChangedNotification  = @"HBChaptersChangedNotification";
     self = [super init];
 
     decodeInt(_state);
+    decodeObject(_name);
     decodeObject(_presetName);
     decodeInt(_titleIdx);
     decodeObject(_uuid);
index c5d96052e61ea23a0815bc9388d6b9b564899012..4bcfecb21c78a34195d11b3078f74ef184844f03 100644 (file)
@@ -52,6 +52,6 @@
  */
 @property (nonatomic, readwrite) BOOL isDragginEnabled;
 
-@property (assign) IBOutlet NSTableView *tableView;
+@property (unsafe_unretained) IBOutlet NSTableView *tableView;
 
 @end
index 7e9ad62ac42d85ebb9b803fe26cac8624eb71026..f848f9a1055777a06ab3b103eca9fbce1c9f4413 100644 (file)
@@ -14,8 +14,8 @@
     self = [super init];
     if (self)
     {
-        _language = [value retain];
-        _iso639_2 = [code retain];
+        _language = value;
+        _iso639_2 = code;
     }
     return self;
 }
     HBLang *lang = [[self class] allocWithZone:zone];
 
     lang->_isSelected = self.isSelected;
-    lang->_language = [self.language retain];
-    lang->_iso639_2 = [self.iso639_2 retain];
+    lang->_language = self.language;
+    lang->_iso639_2 = self.iso639_2;
 
     return lang;
 }
 
-- (void)dealloc
-{
-    [_language release];
-    [_iso639_2 release];
-
-    [super dealloc];
-}
-
 - (NSString *)description
 {
     return self.language;
                 [internal addObject:item];
             }
             
-            [item release];
         }
 
         // Add the (Any) item.
-        HBLang *item = [[[HBLang alloc] initWithLanguage:@"(Any)"
-                                            iso639_2code:@"und"] autorelease];
+        HBLang *item = [[HBLang alloc] initWithLanguage:@"(Any)"
+                                            iso639_2code:@"und"];
         if ([languages containsObject:item.iso639_2])
         {
             item.isSelected = YES;
@@ -99,7 +90,6 @@
 
         [internal insertObjects:selected
                       atIndexes:[NSIndexSet indexSetWithIndexesInRange:(NSMakeRange(1, selected.count))]];
-        [selected release];
 
         _languagesArray = internal;
     }
 
 - (NSArray *)selectedLanguages
 {
-    NSMutableArray *selected = [[[NSMutableArray alloc] init] autorelease];
+    NSMutableArray *selected = [[NSMutableArray alloc] init];
     for (HBLang *lang in self.languagesArray)
     {
         if (lang.isSelected)
         }
     }
 
-    return [[selected copy] autorelease];
+    return [selected copy];
 }
 
-- (void)dealloc
-{
-    [_languagesArray release];
-
-    [super dealloc];
-}
 
 @end
 
@@ -203,7 +187,6 @@ NSString *kHBLanguagesDragRowsType = @"kHBLanguagesDragRowsType";
             }
 
             data = [NSKeyedArchiver archivedDataWithRootObject:unfilteredIndexes];
-            [filteredArray release];
         }
         else
         {
@@ -290,10 +273,8 @@ NSString *kHBLanguagesDragRowsType = @"kHBLanguagesDragRowsType";
                id object = objects[removeIndex];
 
                // Move the object
-               [object retain];
                [self removeObjectAtArrangedObjectIndex:removeIndex];
                [self insertObject:object atArrangedObjectIndex:insertIndex];
-               [object release];
 
                thisIndex = [indexSet indexLessThanIndex:thisIndex];
     }
index 7215c17231999794f10068366f589b81af43389b..27ac917c56d3afcd6e97d7ca4518e60822a52510 100644 (file)
@@ -36,8 +36,6 @@
 - (void)dealloc
 {
     fclose(f);
-    [_url release];
-    [super dealloc];
 }
 
 - (void)writeHeaderForReason:(NSString *)reason
index 909fbe736aeb692a9ff43dfa59bbdb92cd397c63..2fc5f303259793a060500a5da18763bb496d57d6 100644 (file)
         // Add ourself as stderr/stdout listener
         [[HBOutputRedirect stderrRedirect] addListener:self];
         [[HBOutputRedirect stdoutRedirect] addListener:self];
+
+        // Lets report the HandBrake version number here to the activity log and text log file
+        NSDictionary *infoDict = [[NSBundle mainBundle] infoDictionary];
+        NSString *versionStringFull = [NSString stringWithFormat:@"Handbrake Version: %@  (%@)", infoDict[@"CFBundleShortVersionString"], infoDict[@"CFBundleVersion"]];
+        [HBUtilities writeToActivityLog: "%s", versionStringFull.UTF8String];
     }
     return self;
 }
 {
     [[HBOutputRedirect stderrRedirect] removeListener:self];
     [[HBOutputRedirect stdoutRedirect] removeListener:self];
-    [outputTextStorage release];
-    [_outputFile release];
-
-    [super dealloc];
 }
 
 /**
     NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:text];
        /* Actually write the libhb output to the text view (outputTextStorage) */
     [outputTextStorage appendAttributedString:attributedString];
-    [attributedString release];
     
        /* remove text from outputTextStorage as defined by TextStorageUpperSizeLimit and TextStorageLowerSizeLimit */
     if (outputTextStorage.length > TextStorageUpperSizeLimit)
index 9856e840ae72cb3db92ff0639a87ab96b7dfb828..f0561888f1a5b36de51d3ed9798768c149183c84 100644 (file)
@@ -50,7 +50,6 @@ int   stdoutwrite(void *inFD, const char *buffer, int size)
     {
         NSData *data = [[NSData alloc] initWithBytes:buffer length:size];
         [g_stdoutRedirect performSelectorOnMainThread:@selector(forwardOutput:) withObject:data waitUntilDone:NO];
-        [data release];
     }
     return size;
 }
@@ -61,7 +60,6 @@ int   stderrwrite(void *inFD, const char *buffer, int size)
     {
         NSData *data = [[NSData alloc] initWithBytes:buffer length:size];
         [g_stderrRedirect performSelectorOnMainThread:@selector(forwardOutput:) withObject:data waitUntilDone:NO];
-        [data release];
     }
     return size;
 }
@@ -101,7 +99,6 @@ int  stderrwrite(void *inFD, const char *buffer, int size)
        if (![listeners containsObject:aListener])
        {
                [listeners addObject:aListener];
-               [aListener release];
        }
        
        if ([listeners count] > 0)
@@ -115,7 +112,6 @@ int stderrwrite(void *inFD, const char *buffer, int size)
 {
        if ([listeners containsObject:aListener])
        {
-               [aListener retain];
                [listeners removeObject:aListener];
        }
 
@@ -125,7 +121,6 @@ int stderrwrite(void *inFD, const char *buffer, int size)
        if ([listeners count] == 0)
        {
                [self stopRedirect];
-               [self autorelease];
 
                if (self == g_stdoutRedirect)
                        g_stdoutRedirect = nil;
@@ -159,15 +154,6 @@ int        stderrwrite(void *inFD, const char *buffer, int size)
        return self;
 }
 
-/**
- * Frees all the listeners and deallocs the object.
- */
-- (void)dealloc
-{
-       [listeners release];
-       [super dealloc];
-}
-
 /**
  * Starts redirecting the stream by redirecting its output to function
  * @c stdoutwrite() or @c stderrwrite(). Old _write function is stored to
@@ -205,7 +191,6 @@ int stderrwrite(void *inFD, const char *buffer, int size)
     if (string)
     {
         [listeners makeObjectsPerformSelector:forwardingSelector withObject:string];
-        [string release];
     }
 }
 
index 60b76158889a46e5aba0f0e7c7f55bb0c9fa0f0d..8dfd019cd9953b2259aca1834d2e55e3574b2477 100644 (file)
      self.cropTop, self.cropBottom,
      self.cropLeft, self.cropRight];
 
-    return [[summary copy] autorelease];
+    return [summary copy];
 }
 
 @end
index ce63e68c2f97b63a1c1fc97211c354b6b4e367d8..bf2f6ec5c8037e482595d7749bc27b9591aea2c1 100644 (file)
@@ -41,7 +41,7 @@ extern NSString * const HBPictureChangedNotification;
 @property (nonatomic, readwrite) int cropLeft;
 @property (nonatomic, readwrite) int cropRight;
 
-@property (nonatomic, readwrite, assign) HBTitle *title;
+@property (nonatomic, readwrite, unsafe_unretained) HBTitle *title;
 
 @end
 
index 6328cc7abddb67f3c4190fcbb818e83f971224c9..6efbcbe5bb73c67b1b75a8326d27e415238aa04f 100644 (file)
 
 @interface HBPictureController : NSWindowController <NSWindowDelegate>
 
-@property (nonatomic, readwrite, retain) HBFilters *filters;
-@property (nonatomic, readwrite, retain) HBPicture *picture;
+@property (nonatomic, readwrite, strong) HBFilters *filters;
+@property (nonatomic, readwrite, strong) HBPicture *picture;
 
-@property (nonatomic, readwrite, assign) id <HBPictureControllerDelegate> delegate;
+@property (nonatomic, readwrite, unsafe_unretained) id <HBPictureControllerDelegate> delegate;
 
 - (void)showPictureWindow;
 
index ff69f2dde4488aa0714d3d18774039cbd8cbaf71..73c09f1e2c8e427bb967e95ceb4db2dcdb79aade 100644 (file)
@@ -81,11 +81,6 @@ static void *HBPictureControllerContext = &HBPictureControllerContext;
         }
 
     } @catch (NSException * __unused exception) {}
-
-    self.filters = nil;
-    self.picture = nil;
-
-    [super dealloc];
 }
 
 - (void)windowDidLoad
index 8bbb58015d6245376d2f8065acdc8ad083c5329f..2419efd066bfc08ddd1bf8fa2aecd5e04fde9302 100644 (file)
                                        label: (NSString *)label
                                        image: (NSImage *)image;
 
-@property (assign) IBOutlet NSTokenField *formatTokenField;
-@property (assign) IBOutlet NSTokenField *builtInTokenField;
-@property (nonatomic, readonly) NSArray *buildInFormatTokens;
-@property (nonatomic, retain) NSArray *matches;
+@property (unsafe_unretained) IBOutlet NSTokenField *formatTokenField;
+@property (unsafe_unretained) IBOutlet NSTokenField *builtInTokenField;
+@property (nonatomic, readonly, strong) NSArray *buildInFormatTokens;
+@property (nonatomic, strong) NSArray *matches;
 
-@property (nonatomic, retain) HBLanguagesSelection *languages;
+@property (nonatomic, strong) HBLanguagesSelection *languages;
 
 @end
 
     return self;
 }
 
-- (void)dealloc
-{
-    [_languages release];
-    [super dealloc];
-}
-
 - (void)showWindow:(id)sender
 {
     if (!self.window.isVisible)
  */
 - (void) awakeFromNib
 {
-    NSToolbar * toolbar = [[[NSToolbar alloc] initWithIdentifier: @"Preferences Toolbar"] autorelease];
+    NSToolbar * toolbar = [[NSToolbar alloc] initWithIdentifier: @"Preferences Toolbar"];
     [toolbar setDelegate: self];
     [toolbar setAllowsUserCustomization: NO];
     [toolbar setDisplayMode: NSToolbarDisplayModeIconAndLabel];
     [self.formatTokenField setTokenizingCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"%%"]];
     [self.formatTokenField setCompletionDelay:0.2];
 
-    _buildInFormatTokens = [@[@"{Source}", @"{Title}", @"{Date}", @"{Time}", @"{Chapters}", @"{Quality/Bitrate}"] retain];
+    _buildInFormatTokens = @[@"{Source}", @"{Title}", @"{Date}", @"{Time}", @"{Chapters}", @"{Quality/Bitrate}"];
     [self.builtInTokenField setTokenizingCharacterSet:[NSCharacterSet characterSetWithCharactersInString:@"%%"]];
     [self.builtInTokenField setStringValue:[self.buildInFormatTokens componentsJoinedByString:@"%%"]];
 
     [item setImage:image];
     [item setAction:@selector(setPrefView:)];
     [item setAutovalidates:NO];
-    return [item autorelease];
+    return item;
 }
 
 @end
index 25c1e3b5dc9a5413a15cc4614a451d1c0a5d4ec0..a0a10e7f6c3e29c98ee98dde4596bcd76f840b23 100644 (file)
@@ -20,7 +20,7 @@
 
 @property (nonatomic, copy) NSString *name;
 @property (nonatomic, copy) NSString *presetDescription;
-@property (nonatomic, retain) NSDictionary *content;
+@property (nonatomic, strong) NSDictionary *content;
 
 @property (nonatomic) BOOL isDefault;
 @property (nonatomic, readonly) BOOL isBuiltIn;
index 7cf979152fbbaeca4dfd6098236bd1894fa47a92..0ad0a8c863f07e05c7fe61d20beff76572f5286a 100644 (file)
@@ -15,7 +15,7 @@
     {
         _name = [title copy];
         _isBuiltIn = builtIn;
-        _content = [content retain];
+        _content = content;
         _presetDescription = [content[@"PresetDescription"] copy];
     }
     return self;
     return self;
 }
 
-- (void)dealloc
-{
-    [_name release];
-    [_content release];
-    [_presetDescription release];
-
-    [super dealloc];
-}
-
 - (id)copyWithZone:(NSZone *)zone
 {
     HBPreset *node = [[self class] allocWithZone:zone];
@@ -62,7 +53,7 @@
     node->_presetDescription = [self.presetDescription copy];
     for (HBPreset *children in self.children)
     {
-        [node.children addObject:[[children copy] autorelease]];
+        [node.children addObject:[children copy]];
     }
 
     return node;
@@ -75,7 +66,6 @@
 
 - (void)setName:(NSString *)name
 {
-    [_name autorelease];
     _name = [name copy];
 
     [self.delegate nodeDidChange];
index 4eddec36570df969925d46c1ebdb29b2c41ecb85..45347515269d04eb3b557642c3611b80711852d5 100644 (file)
@@ -27,7 +27,7 @@ extern NSString *HBPresetsChangedNotification;
 /**
  *  defaultPreset and its index path in the tree
  */
-@property (nonatomic, readwrite, retain) HBPreset *defaultPreset;
+@property (nonatomic, readwrite, strong) HBPreset *defaultPreset;
 
 /**
  *  Returs a HBPresetManager with the presets loaded at the passed URL.
index 108859cbbad303db3037738ed73a4fb9b9c052bc..523e7f906eabbf049c77f0dfba80cff5fcd9a275 100644 (file)
@@ -42,16 +42,6 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
     return self;
 }
 
-- (void)dealloc
-{
-    [_fileURL release];
-    [_defaultPreset release];
-
-    [_root release];
-
-    [super dealloc];
-}
-
 - (NSIndexPath *)indexPathOfPreset:(HBPreset *)preset
 {
     __block NSIndexPath *retValue = nil;
@@ -61,12 +51,12 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
     {
         if ([obj isEqualTo:preset])
         {
-            retValue = [idx retain];
+            retValue = idx;
             *stop = YES;
         }
     }];
 
-    return [retValue autorelease];
+    return retValue;
 }
 
 #pragma mark - HBTreeNode delegate
@@ -87,8 +77,6 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
         [self.root.children addObject:[self loadFromDict:child]];
     }
 
-    [presetsArray release];
-
     // If the preset list contains no leaf,
     // add back the built in presets.
     __block BOOL leafFound = NO;
@@ -115,7 +103,7 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
 
 - (BOOL)savePresetsToURL:(NSURL *)url
 {
-    NSMutableArray *presetsArray = [[[NSMutableArray alloc] init] autorelease];
+    NSMutableArray *presetsArray = [[NSMutableArray alloc] init];
 
     for (HBPreset *node in self.root.children)
     {
@@ -142,8 +130,8 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
     HBPreset *node = nil;
     if ([dict[@"Folder"] boolValue])
     {
-        node = [[[HBPreset alloc] initWithFolderName:dict[@"PresetName"]
-                                              builtIn:![dict[@"Type"] boolValue]] autorelease];
+        node = [[HBPreset alloc] initWithFolderName:dict[@"PresetName"]
+                                              builtIn:![dict[@"Type"] boolValue]];
 
         for (NSDictionary *child in dict[@"ChildrenArray"])
         {
@@ -152,9 +140,9 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
     }
     else
     {
-        node = [[[HBPreset alloc] initWithName:dict[@"PresetName"]
+        node = [[HBPreset alloc] initWithName:dict[@"PresetName"]
                                         content:dict
-                                        builtIn:![dict[@"Type"] boolValue]] autorelease];
+                                        builtIn:![dict[@"Type"] boolValue]];
         node.isDefault = [dict[@"Default"] boolValue];
 
         if ([dict[@"Default"] boolValue])
@@ -190,10 +178,9 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
         }
 
         output[@"ChildrenArray"] = childArray;
-        [childArray release];
     }
 
-    return [output autorelease];
+    return output;
 }
 
 #pragma mark - Presets Management
@@ -226,7 +213,6 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
                                                    builtIn:NO];
 
     [self.root insertObject:presetNode inChildrenAtIndex:[self.root countOfChildren]];
-    [presetNode release];
 
     [self savePresets];
 }
@@ -335,10 +321,9 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
         if (_defaultPreset)
         {
             _defaultPreset.isDefault = NO;
-            [_defaultPreset autorelease];
         }
         defaultPreset.isDefault = YES;
-        _defaultPreset = [defaultPreset retain];
+        _defaultPreset = defaultPreset;
 
         [self nodeDidChange];
     }
@@ -372,14 +357,11 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
             // each time the app checks the version.
             presetDict[@"PresetBuildNumber"] = [[NSBundle mainBundle] infoDictionary][@"CFBundleVersion"];
             [obj setContent:presetDict];
-            [presetDict release];
         }];
 
         [self.root insertObject:preset inChildrenAtIndex:0];
     }
 
-    [presetsArray release];
-
     // set a new Default preset
     [self selectNewDefault];
 
@@ -398,7 +380,6 @@ NSString *HBPresetsChangedNotification = @"HBPresetsChangedNotification";
         }
     }
     [self.root.children removeObjectsInArray:nodeToRemove];
-    [nodeToRemove release];
     [self didChangeValueForKey:@"root"];
 }
 
index 6dab68f1c2f65f681a9dadedaabc968dc84bb824..7c7efa15ca946e3eca3afbaf09b0f73f298b7a89 100644 (file)
 
 - (instancetype)initWithPresetManager:(HBPresetsManager *)presetManager;
 
-@property (nonatomic, readwrite, assign) id<HBPresetsViewControllerDelegate> delegate;
+@property (nonatomic, readwrite, unsafe_unretained) id<HBPresetsViewControllerDelegate> delegate;
 
 - (void)deselect;
 - (void)setSelection:(HBPreset *)preset;
 
 - (IBAction)insertFolder:(id)sender;
 
-@property (nonatomic, readonly) HBPreset *selectedPreset;
+@property (unsafe_unretained, nonatomic, readonly) HBPreset *selectedPreset;
 @property (nonatomic, readonly) NSUInteger indexOfSelectedItem;
 
 @property (nonatomic, readwrite, getter=isEnabled) BOOL enabled;
index c5df7e6fbbae86e6146f9f6b37bc7106e99d1511..aab6e29f5579ba6d0394d6ead4c5639236fb5250 100644 (file)
 
 @interface HBPresetsViewController () <NSOutlineViewDelegate>
 
-@property (nonatomic, retain) HBPresetsManager *presets;
-@property (nonatomic, assign) IBOutlet NSTreeController *treeController;
+@property (nonatomic, strong) HBPresetsManager *presets;
+@property (nonatomic, unsafe_unretained) IBOutlet NSTreeController *treeController;
 
 /**
  *  Helper var for drag & drop
  */
-@property (nonatomic, retain) NSArray *dragNodesArray;
+@property (nonatomic, strong) NSArray *dragNodesArray;
 
 /**
  *  The status (expanded or not) of the folders.
  */
-@property (nonatomic, retain) NSMutableArray *expandedNodes;
+@property (nonatomic, strong) NSMutableArray *expandedNodes;
 
-@property (assign) IBOutlet NSOutlineView *outlineView;
+@property (unsafe_unretained) IBOutlet NSOutlineView *outlineView;
 
 @end
 
     self = [super initWithNibName:@"Presets" bundle:nil];
     if (self)
     {
-        _presets = [presetManager retain];
+        _presets = presetManager;
         _expandedNodes = [[NSArray arrayWithArray:[[NSUserDefaults standardUserDefaults]
                                                    objectForKey:@"HBPreviewViewExpandedStatus"]] mutableCopy];
     }
     return self;
 }
 
-- (void)dealloc
-{
-    self.presets = nil;
-    self.dragNodesArray = nil;
-    self.expandedNodes = nil;
-    
-    [super dealloc];
-}
-
 - (void)loadView
 {
     [super loadView];
 
     HBPreset *node = [[HBPreset alloc] initWithFolderName:@"New Folder" builtIn:NO];
     [self.treeController insertObject:node atArrangedObjectIndexPath:selectionIndexPath];
-    [node autorelease];
 }
 
 - (IBAction)setDefault:(id)sender
index a3984a272950da2137502309d7258b8d15d60fa2..9dd2ccf7f3cf5a936a4ddf6b7031c43b3b9b74be 100644 (file)
@@ -18,6 +18,6 @@
 
 - (id)initWithDelegate:(id <HBPreviewControllerDelegate>)delegate;
 
-@property (nonatomic, retain) HBPreviewGenerator *generator;
+@property (nonatomic, strong) HBPreviewGenerator *generator;
 
 @end
index bbe9ba537732389d76939bfa563d131295f6e47d..0996122eb783f36d8bec11cefe49b8f14b9f66c6 100644 (file)
@@ -93,22 +93,22 @@ typedef enum ViewMode : NSUInteger {
     IBOutlet NSPopUpButton          * fPreviewMovieLengthPopUp;
 }
 
-@property (nonatomic, assign) id <HBPreviewControllerDelegate> delegate;
+@property (nonatomic, unsafe_unretained) id <HBPreviewControllerDelegate> delegate;
 
-@property (nonatomic) CALayer *backLayer;
-@property (nonatomic) CALayer *pictureLayer;
+@property (nonatomic, strong) CALayer *backLayer;
+@property (nonatomic, strong) CALayer *pictureLayer;
 
 @property (nonatomic) CGFloat backingScaleFactor;
 
 @property (nonatomic) ViewMode currentViewMode;
 @property (nonatomic) BOOL scaleToScreen;
 
-@property (nonatomic, retain) NSTimer *hudTimer;
+@property (nonatomic, strong) NSTimer *hudTimer;
 
 @property (nonatomic) NSUInteger pictureIndex;
 
-@property (nonatomic, retain) QTMovie *movie;
-@property (nonatomic, retain) NSTimer *movieTimer;
+@property (nonatomic, strong) QTMovie *movie;
+@property (nonatomic, strong) NSTimer *movieTimer;
 
 /* Pictures HUD actions */
 - (IBAction) previewDurationPopUpChanged: (id) sender;
@@ -134,22 +134,12 @@ typedef enum ViewMode : NSUInteger {
 {
        if (self = [super initWithWindowNibName:@"PicturePreview"])
        {
-        // NSWindowController likes to lazily load its window. However since
-        // this controller tries to set all sorts of outlets before the window
-        // is displayed, we need it to load immediately. The correct way to do
-        // this, according to the documentation, is simply to invoke the window
-        // getter once.
-        //
-        // If/when we switch a lot of this stuff to bindings, this can probably
-        // go away.
-        [self window];
         _delegate = delegate;
-
     }
        return self;
 }
 
-- (void) awakeFromNib
+- (void)windowDidLoad
 {
     [[self window] setDelegate:self];
 
@@ -234,10 +224,9 @@ typedef enum ViewMode : NSUInteger {
     {
         _generator.delegate = nil;
         [_generator cancel];
-        [_generator autorelease];
     }
 
-    _generator = [generator retain];
+    _generator = generator;
 
     if (generator)
     {
@@ -248,7 +237,6 @@ typedef enum ViewMode : NSUInteger {
         [fPictureSlider setNumberOfTickMarks: generator.imagesCount];
 
         [self switchViewToMode:ViewModePicturePreview];
-        [self displayPreview];
     }
 }
 
@@ -529,18 +517,11 @@ typedef enum ViewMode : NSUInteger {
 
 - (void) dealloc
 {
-    [_hudTimer invalidate];
-    [_hudTimer release];
+    [self removeMovieObservers];
 
+    [_hudTimer invalidate];
     [_movieTimer invalidate];
-    [_movieTimer release];
-
     [_generator cancel];
-    [_generator release];
-
-    [self removeMovieObservers];
-
-    [super dealloc];
 }
 
 #pragma mark -
@@ -675,8 +656,9 @@ typedef enum ViewMode : NSUInteger {
 
     if (self.window.isVisible)
     {
-        fPreviewImage = [self.generator imageAtIndex:self.pictureIndex shouldCache:YES];
-        [self.pictureLayer setContents:(id)fPreviewImage];
+        fPreviewImage = [self.generator copyImageAtIndex:self.pictureIndex shouldCache:YES];
+        [self.pictureLayer setContents:(__bridge id)(fPreviewImage)];
+        CFRelease(fPreviewImage);
     }
     else
     {
@@ -848,7 +830,7 @@ typedef enum ViewMode : NSUInteger {
                                           @"QTMovieIsSteppableAttribute": @(YES),
                                           QTMovieApertureModeAttribute: QTMovieApertureModeClean};
 
-        QTMovie *movie = [[[QTMovie alloc] initWithAttributes:movieAttributes error:&outError] autorelease];
+        QTMovie *movie = [[QTMovie alloc] initWithAttributes:movieAttributes error:&outError];
 
                if (!movie)
         {
index 50fe424002c9eef3243800c6981d4d94e5200d31..64805e62e0eea7c8364852f128ffbaa448fa9c73 100644 (file)
 
 @interface HBPreviewGenerator : NSObject
 
-@property (nonatomic, assign) id <HBPreviewGeneratorDelegate> delegate;
+@property (nonatomic, unsafe_unretained) id <HBPreviewGeneratorDelegate> delegate;
 
 - (instancetype)initWithCore:(HBCore *)core job:(HBJob *)job;
 
 /* Still image generator */
-- (CGImageRef) imageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache;
+- (CGImageRef) copyImageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache;
 - (NSUInteger) imagesCount;
 - (void) purgeImageCache;
 
index 46352aa55d8d5ae9259c6f8e92f570373d13e7fa..5c9f2a788fd0c514d431a83405b218bc5abf66bb 100644 (file)
 
 @property (nonatomic, readonly) NSMutableDictionary *picturePreviews;
 @property (nonatomic, readonly) NSUInteger imagesCount;
-@property (nonatomic, readonly) HBCore *scanCore;
-@property (nonatomic, readonly) HBJob *job;
+@property (unsafe_unretained, nonatomic, readonly) HBCore *scanCore;
+@property (unsafe_unretained, nonatomic, readonly) HBJob *job;
 
-@property (nonatomic) HBCore *core;
+@property (unsafe_unretained, nonatomic) HBCore *core;
 
 @end
 
     return self;
 }
 
+- (void)dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+    [self.core cancelEncode];
+}
+
 #pragma mark -
 #pragma mark Preview images
 
  *
  * @param index picture index in title.
  */
-- (CGImageRef) imageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache
+- (CGImageRef) copyImageAtIndex: (NSUInteger) index shouldCache: (BOOL) cache
 {
     if (index >= self.imagesCount)
         return nil;
 
     // The preview for the specified index may not currently exist, so this method
     // generates it if necessary.
-    CGImageRef theImage = (CGImageRef)[self.picturePreviews objectForKey:@(index)];
+    CGImageRef theImage = (__bridge CGImageRef)[self.picturePreviews objectForKey:@(index)];
 
     if (!theImage)
     {
         HBFilters *filters = self.job.filters;
         BOOL deinterlace = (filters.deinterlace && !filters.useDecomb) || (filters.decomb && filters.useDecomb);
 
-        theImage = (CGImageRef)[(id)[self.scanCore copyImageAtIndex:index
+        theImage = (CGImageRef)[self.scanCore copyImageAtIndex:index
                                                            forTitle:self.job.title
                                                        pictureFrame:self.job.picture
-                                                        deinterlace:deinterlace] autorelease];
+                                                        deinterlace:deinterlace];
         if (cache && theImage)
         {
-            [self.picturePreviews setObject:(id)theImage forKey:@(index)];
+            [self.picturePreviews setObject:(__bridge id)theImage forKey:@(index)];
         }
     }
+    else
+    {
+        CFRetain(theImage);
+    }
 
     return theImage;
 }
     // See if there is an existing preview file, if so, delete it.
     [[NSFileManager defaultManager] removeItemAtURL:destURL error:NULL];
 
-    HBJob *job = [[self.job copy] autorelease];
+    HBJob *job = [self.job copy];
     job.title = self.job.title;
     job.destURL = destURL;
 
 
     // Init the libhb core
     int loggingLevel = [[[NSUserDefaults standardUserDefaults] objectForKey:@"LoggingLevel"] intValue];
-    self.core = [[[HBCore alloc] initWithLoggingLevel:loggingLevel] autorelease];
+    self.core = [[HBCore alloc] initWithLoggingLevel:loggingLevel];
     self.core.name = @"PreviewCore";
 
     // start the actual encode
     }
 }
 
-#pragma mark -
-
-- (void) dealloc
-{
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
-
-    [self.core cancelEncode];
-
-    [_picturePreviews release];
-    _picturePreviews = nil;
-
-    [super dealloc];
-}
-
 @end
index 0e00267b9401176b057d30eb0bc343e13d68dde7..8ef32b1ae557b48f7b501440e28ba641fab62bca 100644 (file)
@@ -18,8 +18,8 @@
 /// The HBCore used for encoding.
 @property (nonatomic, readonly) HBCore *core;
 
-@property (nonatomic, assign) HBController *controller;
-@property (nonatomic, assign) HBAppDelegate *delegate;
+@property (nonatomic, unsafe_unretained) HBController *controller;
+@property (nonatomic, unsafe_unretained) HBAppDelegate *delegate;
 
 @property (nonatomic, readonly) NSUInteger count;
 @property (nonatomic, readonly) NSUInteger pendingItemsCount;
index a4cf287a70ec8f4650fc07f348adaa834300778f..c52dd3b687535516f0250eb032cbcd3b44b71f50 100644 (file)
 @property (nonatomic, readonly) HBDockTile *dockTile;
 @property (nonatomic, readwrite) double dockIconProgress;
 
-@property (assign) IBOutlet NSTextField *progressTextField;
-@property (assign) IBOutlet NSTextField *countTextField;
-@property (assign) IBOutlet HBQueueOutlineView *outlineView;
+@property (unsafe_unretained) IBOutlet NSTextField *progressTextField;
+@property (unsafe_unretained) IBOutlet NSTextField *countTextField;
+@property (unsafe_unretained) IBOutlet HBQueueOutlineView *outlineView;
 
 @property (nonatomic, readonly) NSMutableDictionary *descriptions;
 
 @property (nonatomic, readonly) HBDistributedArray *jobs;
-@property (nonatomic, retain)   HBJob *currentJob;
-@property (nonatomic, retain)   HBJobOutputFileWriter *currentLog;
+@property (nonatomic, strong)   HBJob *currentJob;
+@property (nonatomic, strong)   HBJobOutputFileWriter *currentLog;
 
 @property (nonatomic, readwrite) BOOL stop;
 
 @property (nonatomic, readwrite) NSUInteger pendingItemsCount;
 @property (nonatomic, readwrite) NSUInteger workingItemsCount;
 
-@property (nonatomic, retain) NSArray *dragNodesArray;
+@property (nonatomic, strong) NSArray *dragNodesArray;
 
 @end
 
         [[self window] setDelegate:nil];
 
     [[NSNotificationCenter defaultCenter] removeObserver:self];
-
-    [_core release];
-    [_jobs release];
-    [_currentJob release];
-
-    [_dockTile release];
-    [_descriptions release];
-    [_dragNodesArray release];
-
-    [super dealloc];
 }
 
 - (void)windowDidLoad
         insertIndex--;
     }
 
-    id object = [self.jobs[removeIndex] retain];
+    id object = self.jobs[removeIndex];
     [self.jobs removeObjectAtIndex:removeIndex];
     [self.jobs insertObject:object atIndex:insertIndex];
-    [object release];
 
     // We save all of the Queue data here
     // and it also gets sent back to the queue controller
         self.currentJob.state = HBJobStateWorking;
 
         // Tell HB to output a new activity log file for this encode
-        self.currentLog = [[[HBJobOutputFileWriter alloc] initWithJob:self.currentJob] autorelease];
+        self.currentLog = [[HBJobOutputFileWriter alloc] initWithJob:self.currentJob];
         [[HBOutputRedirect stderrRedirect] addListener:self.currentLog];
         [[HBOutputRedirect stdoutRedirect] addListener:self.currentLog];
 
             [HBUtilities writeToActivityLog: "trying to send encode to: %s", [sendToApp UTF8String]];
             NSAppleScript *myScript = [[NSAppleScript alloc] initWithSource: [NSString stringWithFormat: @"%@%@%@%@%@", @"tell application \"",sendToApp,@"\" to open (POSIX file \"", fileURL.path, @"\")"]];
             [myScript executeAndReturnError: nil];
-            [myScript release];
         }
     }
 }
         [alert setInformativeText:NSLocalizedString(@"Your HandBrake queue is done!", @"")];
         [NSApp requestUserAttention:NSCriticalRequest];
         [alert runModal];
-        [alert release];
     }
 
     // If sleep has been selected
         NSAppleScript *scriptObject = [[NSAppleScript alloc] initWithSource:
                                        @"tell application \"Finder\" to sleep"];
         [scriptObject executeAndReturnError: &errorDict];
-        [scriptObject release];
     }
     // If Shutdown has been selected
     if( [[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString: @"Shut Down Computer"] )
         NSDictionary *errorDict;
         NSAppleScript *scriptObject = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to shut down"];
         [scriptObject executeAndReturnError: &errorDict];
-        [scriptObject release];
     }
 }
 
         [alert beginSheetModalForWindow:targetWindow
                           modalDelegate:self
                          didEndSelector:@selector(didDimissCancelCurrentJob:returnCode:contextInfo:)
-                            contextInfo:self.jobs[row]];
-        [alert release];
+                            contextInfo:(__bridge void *)(self.jobs[row])];
     }
     else if ([self.jobs[row] state] != HBJobStateWorking)
     {
         {
             [self.delegate showPreferencesWindow:nil];
         }
-        [alert release];
     }
     else if ([[[NSUserDefaults standardUserDefaults] stringForKey:@"AlertWhenDone"] isEqualToString:@"Shut Down Computer"])
     {
         {
             [self.delegate showPreferencesWindow:nil];
         }
-        [alert release];
     }
 }
 
                       modalDelegate:self
                      didEndSelector:@selector(didDimissCancel:returnCode:contextInfo:)
                         contextInfo:nil];
-    [alert release];
 }
 
 - (void)didDimissCancel:(NSAlert *)alert
         [alert beginSheetModalForWindow:docWindow
                           modalDelegate:self
                          didEndSelector:@selector(didDimissCancelCurrentJob:returnCode:contextInfo:)
-                            contextInfo:job];
-        [alert release];
+                            contextInfo:(__bridge void *)(job)];
     }
     else
     { 
         // since we are not a currently encoding item, we can just be cancelled
-        HBJob *item = [[[self.jobs[row] representedObject] copy] autorelease];
+        HBJob *item = [[self.jobs[row] representedObject] copy];
         [self.controller rescanJobToMainWindow:item];
 
         // Now that source is loaded and settings applied, delete the queue item from the queue
index 2408f9129cb10982fc966e2d6a4fd3672a6971db..53e7a3fac2db647d36db459dc56f11ad077088c4 100644 (file)
@@ -91,7 +91,7 @@
         [rowIndexes addIndexes:selectedRowIndexes];
     }
 
-    return [[rowIndexes copy] autorelease];
+    return [rowIndexes copy];
 }
 
 @end
index fcf455b2f4a7adc348e606fafa1b9168839116ed..ac09856616768a897680798513b8d2810fc5ea4b 100644 (file)
@@ -42,6 +42,6 @@ typedef NS_ENUM(NSUInteger, HBRangeType) {
 
 @property (nonatomic, readonly) NSString *duration;
 
-@property (nonatomic, readwrite, assign) HBTitle *title;
+@property (nonatomic, readwrite, unsafe_unretained) HBTitle *title;
 
 @end
index ac8483f630d6f67df910b4b6da240fc4092bf803..4b3eb2288fb74eb836bd8930556d22817038e27c 100644 (file)
@@ -42,13 +42,13 @@ extern NSString *keySubTrackLanguageIndex;
 @property (nonatomic, readonly) NSMutableArray *masterTrackArray;  // the master list of audio tracks from the title
 @property (nonatomic, readonly) NSMutableArray *tracks;
 
-@property (nonatomic, readwrite, retain) NSString *foreignAudioSearchTrackName;
+@property (nonatomic, readwrite, strong) NSString *foreignAudioSearchTrackName;
 @property (nonatomic, readonly) NSArray *charCodeArray;
 
 @property (nonatomic, readonly) NSArray *languagesArray;
 @property (nonatomic, readonly) NSInteger languagesArrayDefIndex;
 
-@property (nonatomic, readwrite, retain) HBSubtitlesDefaults *defaults;
+@property (nonatomic, readwrite, strong) HBSubtitlesDefaults *defaults;
 
 /**
  *  For internal use
index a8fed1cae03af3c71999d615b09a7a8276d64443..a0d7402bdaa315aea61e1f0d6709f5c2d7a9e339 100644 (file)
@@ -85,23 +85,6 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
     return self;
 }
 
-- (void)dealloc
-{
-    [_tracks release];
-    _tracks = nil;
-
-    [_defaults release];
-    _defaults = nil;
-
-    [_masterTrackArray release];
-    _masterTrackArray = nil;
-
-    [_foreignAudioSearchTrackName release];
-    _foreignAudioSearchTrackName = nil;
-
-    [super dealloc];
-}
-
 - (void)addAllTracks
 {
     [self.tracks removeAllObjects];
@@ -164,7 +147,7 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
     newSubtitleTrack[keySubTrackBurned] = @0;
     newSubtitleTrack[keySubTrackDefault] = @0;
 
-    return [newSubtitleTrack autorelease];
+    return newSubtitleTrack;
 }
 
 /**
@@ -358,7 +341,6 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
             }
         }
         [self.tracks removeObjectsInArray:tracksToDelete];
-        [tracksToDelete release];
     }
 
     // Add an empty track
@@ -424,7 +406,6 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
     }
     [self didChangeValueForKey:@"tracks"];
 
-    [tracksToDelete release];
 }
 
 #pragma mark - Languages
@@ -435,7 +416,7 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
 {
     if (!_languagesArray)
     {
-        _languagesArray = [[self populateLanguageArray] retain];
+        _languagesArray = [self populateLanguageArray];
     }
 
     return _languagesArray;
@@ -443,7 +424,7 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
 
 - (NSArray *)populateLanguageArray
 {
-    NSMutableArray *languages = [[[NSMutableArray alloc] init] autorelease];
+    NSMutableArray *languages = [[NSMutableArray alloc] init];
 
     for (const iso639_lang_t * lang = lang_get_next(NULL); lang != NULL; lang = lang_get_next(lang))
     {
@@ -454,7 +435,7 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
             _languagesArrayDefIndex = [languages count] - 1;
         }
     }
-    return [[languages copy] autorelease];
+    return [languages copy];
 }
 
 @synthesize charCodeArray = _charCodeArray;
@@ -464,11 +445,11 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
     if (!_charCodeArray)
     {
         // populate the charCodeArray.
-        _charCodeArray = [@[@"ANSI_X3.4-1968", @"ANSI_X3.4-1986", @"ANSI_X3.4", @"ANSI_X3.110-1983", @"ANSI_X3.110", @"ASCII",
+        _charCodeArray = @[@"ANSI_X3.4-1968", @"ANSI_X3.4-1986", @"ANSI_X3.4", @"ANSI_X3.110-1983", @"ANSI_X3.110", @"ASCII",
                             @"ECMA-114", @"ECMA-118", @"ECMA-128", @"ECMA-CYRILLIC", @"IEC_P27-1", @"ISO-8859-1", @"ISO-8859-2",
                             @"ISO-8859-3", @"ISO-8859-4", @"ISO-8859-5", @"ISO-8859-6", @"ISO-8859-7", @"ISO-8859-8", @"ISO-8859-9",
                             @"ISO-8859-9E", @"ISO-8859-10", @"ISO-8859-11", @"ISO-8859-13", @"ISO-8859-14", @"ISO-8859-15", @"ISO-8859-16",
-                            @"UTF-7", @"UTF-8", @"UTF-16", @"UTF-16LE", @"UTF-16BE", @"UTF-32", @"UTF-32LE", @"UTF-32BE"] retain];
+                            @"UTF-7", @"UTF-8", @"UTF-16", @"UTF-16LE", @"UTF-16BE", @"UTF-32", @"UTF-32LE", @"UTF-32BE"];
     }
     return _charCodeArray;
 }
@@ -491,7 +472,7 @@ NSString *keySubTrackLanguageIndex = @"keySubTrackLanguageIndex";
             if (idx < _tracks.count)
             {
                 NSMutableDictionary *trackCopy = [obj copy];
-                [copy->_tracks addObject:[trackCopy autorelease]];
+                [copy->_tracks addObject:trackCopy];
             }
         }];
 
index b65cb35e2ed42255f88974726397530c247b3f55..df72a30dd5e4bac71ac7c216cf5485394256989b 100644 (file)
@@ -13,6 +13,6 @@
  */
 @interface HBSubtitlesController : NSViewController
 
-@property (nonatomic, readwrite, assign) HBSubtitles *subtitles;
+@property (nonatomic, readwrite, unsafe_unretained) HBSubtitles *subtitles;
 
 @end
index 5f2c7ef5b8b1dd6fceec400913217eb34df957fc..509ab0de507316ae1ac870139e5ebeed4e162264 100644 (file)
@@ -18,10 +18,10 @@ static void *HBSubtitlesControllerContext = &HBSubtitlesControllerContext;
 @interface HBSubtitlesController () <NSTableViewDataSource, NSTableViewDelegate>
 
 // IBOutles
-@property (assign) IBOutlet NSTableView *fTableView;
+@property (unsafe_unretained) IBOutlet NSTableView *fTableView;
 
 // Defaults
-@property (nonatomic, readwrite, retain) HBSubtitlesDefaultsController *defaultsController;
+@property (nonatomic, readwrite, strong) HBSubtitlesDefaultsController *defaultsController;
 
 // Cached table view's cells
 @property (nonatomic, readonly) NSPopUpButtonCell *languagesCell;
@@ -103,7 +103,7 @@ static void *HBSubtitlesControllerContext = &HBSubtitlesControllerContext;
 
 - (IBAction)showSettingsSheet:(id)sender
 {
-    self.defaultsController = [[[HBSubtitlesDefaultsController alloc] initWithSettings:self.subtitles.defaults] autorelease];
+    self.defaultsController = [[HBSubtitlesDefaultsController alloc] initWithSettings:self.subtitles.defaults];
 
        [NSApp beginSheet:[self.defaultsController window]
        modalForWindow:[[self view] window]
@@ -377,7 +377,7 @@ static void *HBSubtitlesControllerContext = &HBSubtitlesControllerContext;
             [[cellTrackPopup menu] addItemWithTitle:track[keySubTrackName] action:NULL keyEquivalent:@""];
         }
 
-        return [cellTrackPopup autorelease];
+        return cellTrackPopup;
     }
     else if ([[tableColumn identifier] isEqualToString:@"srt_lang"])
     {
index 793e31d3ae7321f4868119d074ebf49d7340bba9..60127b437ae5093c4d3e7366c3cdaeeb5a8aa55c 100644 (file)
@@ -23,7 +23,7 @@ typedef NS_ENUM(NSUInteger, HBSubtitleTrackBurnInBehavior) {
 @interface HBSubtitlesDefaults : NSObject <NSCoding, NSCopying, HBPresetCoding>
 
 @property (nonatomic, readwrite) HBSubtitleTrackSelectionBehavior trackSelectionBehavior;
-@property (nonatomic, readwrite, retain) NSMutableArray *trackSelectionLanguages;
+@property (nonatomic, readwrite, strong) NSMutableArray *trackSelectionLanguages;
 
 @property (nonatomic, readwrite) BOOL addForeignAudioSearch;
 @property (nonatomic, readwrite) BOOL addForeignAudioSubtitle;
index ef31e0726e371b176f407b2c8d872abb3b59548c..e634ecda9377115bc2b6cc194ae919ce49fcbdeb 100644 (file)
@@ -76,7 +76,7 @@
         preset[@"SubtitleTrackSelectionBehavior"] = @"none";
     }
 
-    preset[@"SubtitleLanguageList"] = [[self.trackSelectionLanguages copy] autorelease];
+    preset[@"SubtitleLanguageList"] = [self.trackSelectionLanguages copy];
     preset[@"SubtitleAddCC"] = @(self.addCC);
     preset[@"SubtitleAddForeignAudioSearch"] = @(self.addForeignAudioSearch);
     preset[@"SubtitleAddForeignAudioSubtitle"] = @(self.addForeignAudioSubtitle);
     if (copy)
     {
         copy->_trackSelectionBehavior = _trackSelectionBehavior;
-        [copy->_trackSelectionLanguages release];
         copy->_trackSelectionLanguages = [_trackSelectionLanguages mutableCopy];
 
         copy->_addForeignAudioSearch = _addForeignAudioSearch;
     return self;
 }
 
-- (void)dealloc
-{
-    [_trackSelectionLanguages release];
-    [super dealloc];
-}
 
 @end
index f984233942bbe7749c1ea2dc7a06eda645892647..9d1c7f8757e05363b4bef53915c0ccf3b1c20436 100644 (file)
@@ -15,8 +15,8 @@ static void *HBSubtitlesDefaultsContex = &HBSubtitlesDefaultsContex;
 @property (nonatomic, readonly) HBSubtitlesDefaults *settings;
 
 @property (nonatomic, readonly) HBLanguagesSelection *languagesList;
-@property (assign) IBOutlet HBLanguageArrayController *tableController;
-@property (assign) IBOutlet NSButton *showAllButton;
+@property (unsafe_unretained) IBOutlet HBLanguageArrayController *tableController;
+@property (unsafe_unretained) IBOutlet NSButton *showAllButton;
 
 @end
 
@@ -27,7 +27,7 @@ static void *HBSubtitlesDefaultsContex = &HBSubtitlesDefaultsContex;
     self = [super initWithWindowNibName:@"SubtitlesDefaults"];
     if (self)
     {
-        _settings = [settings retain];
+        _settings = settings;
         _languagesList = [[HBLanguagesSelection alloc] initWithLanguages:_settings.trackSelectionLanguages];
     }
     return self;
@@ -74,14 +74,9 @@ static void *HBSubtitlesDefaultsContex = &HBSubtitlesDefaultsContex;
 
 - (void)dealloc
 {
-    [_settings release];
-    [_languagesList release];
-
     @try {
         [self removeObserver:self forKeyPath:@"tableController.showSelectedOnly"];
     } @catch (NSException * __unused exception) {}
-
-    [super dealloc];
 }
 
 @end
index 7d44baef386e3b85003b12f883dc108d55a444ee..be5158327b669ef19db1670b4e44e633a607d657 100644 (file)
@@ -33,7 +33,7 @@ extern NSString *keySubTrackSrtCharCode;
 
 @interface HBTitle ()
 
-@property (nonatomic, readwrite) NSString *name;
+@property (nonatomic, readwrite, strong) NSString *name;
 
 @property (nonatomic, readwrite) NSArray *audioTracks;
 @property (nonatomic, readwrite) NSArray *subtitlesTracks;
@@ -50,7 +50,6 @@ extern NSString *keySubTrackSrtCharCode;
     {
         if (!title)
         {
-            [self release];
             return nil;
         }
 
@@ -61,16 +60,6 @@ extern NSString *keySubTrackSrtCharCode;
     return self;
 }
 
-- (void)dealloc
-{
-    [_name release];
-    [_audioTracks release];
-    [_subtitlesTracks release];
-    [_chapters release];
-
-    [super dealloc];
-}
-
 - (NSString *)name
 {
     if (!_name)
@@ -82,8 +71,6 @@ extern NSString *keySubTrackSrtCharCode;
         {
             _name = [@(self.hb_title->path) lastPathComponent];
         }
-
-        [_name retain];
     }
 
     return _name;
@@ -233,5 +220,4 @@ extern NSString *keySubTrackSrtCharCode;
     return _chapters;
 }
 
-
 @end
index 814c78991aab5648d4791e3bcf60607438cf5816..e7d4d4a70b4d5d591e5c65d87ab9cc7f3424c6c8 100644 (file)
@@ -12,7 +12,7 @@
 @property (nonatomic, readonly) NSArray *titles;
 @property (nonatomic, readonly) NSMutableArray *selection;
 
-@property (nonatomic, readonly) id<HBTitleSelectionDelegate> delegate;
+@property (nonatomic, readonly, unsafe_unretained) id<HBTitleSelectionDelegate> delegate;
 
 @end
 
@@ -23,7 +23,7 @@
     self = [super initWithWindowNibName:@"HBTitleSelection"];
     if (self)
     {
-        _titles = [titles retain];
+        _titles = titles;
         _selection = [[NSMutableArray alloc] initWithCapacity:titles.count];
         _delegate = delegate;
 
     return self;
 }
 
-- (void)dealloc
-{
-    [_titles release];
-    _titles = nil;
-
-    [_selection release];
-    _selection = nil;
-
-    [super dealloc];
-}
-
 - (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
 {
     return self.titles.count;
index e3c3d34b3dae77edfb5da5637aaa3e92c32048a0..1c804b94d69bc50b4cbd530a618c097cd0d54141 100644 (file)
@@ -26,7 +26,7 @@
 @property (nonatomic, readonly) NSMutableArray *children;
 @property (nonatomic) BOOL isLeaf;
 
-@property (nonatomic, assign) id<HBTreeNodeDelegate> delegate;
+@property (nonatomic, unsafe_unretained) id<HBTreeNodeDelegate> delegate;
 
 /**
  *  Executes a given block using each object in the tree, starting with the root object and continuing through the tree to the last object.
index c6a8f095977aa872635bfe49424617acada45e93..a2a69f406d4621dc370aa500842d1a1f080f02ac 100644 (file)
     return self;
 }
 
-- (void)dealloc
-{
-    [_children release];
-    [super dealloc];
-}
-
 - (NSUInteger)countOfChildren
 {
     return self.children.count;
@@ -57,7 +51,7 @@
     NSMutableArray *indexesQueue = [[NSMutableArray alloc] init];
 
     [queue addObject:self];
-    [indexesQueue addObject:[[[NSIndexPath alloc] init] autorelease]];
+    [indexesQueue addObject:[[NSIndexPath alloc] init]];
 
     HBTreeNode *node = nil;
     while ((node = [queue lastObject]) != nil)
@@ -87,9 +81,6 @@
             [queue addObject:childNode];
         }
     }
-    
-    [queue release];
-    [indexesQueue release];
 }
 
 @end
index 3e4fdb272f84c4d315a351d2a450da04f5016f28..cf57feb356ca329e066d9cbf91b315ff4705c635 100644 (file)
@@ -54,7 +54,7 @@
                              bitrate:(int)bitrate
                           videoCodec:(uint32_t)codec
 {
-    NSMutableString *name = [[[NSMutableString alloc] init] autorelease];
+    NSMutableString *name = [[NSMutableString alloc] init];
     // The format array contains the tokens as NSString
     NSArray *format = [[NSUserDefaults standardUserDefaults] objectForKey:@"HBAutoNamingFormat"];
 
         }
     }
 
-    return [[name copy] autorelease];
+    return [name copy];
 }
 
 
index ad5d1e1a638da58662c55a33ceebe0145250b41a..5c4461835b22eee868eaf75b469e76c2b802304d 100644 (file)
@@ -31,7 +31,7 @@
             [encoders addObject:@(video_encoder->name)];
         }
     }
-    return [[encoders copy] autorelease];
+    return [encoders copy];
 }
 
 - (NSArray *)frameRates
@@ -64,7 +64,7 @@
 
         [framerates addObject:itemTitle];
     }
-    return [[framerates copy] autorelease];
+    return [framerates copy];
 }
 
 - (BOOL)fastDecodeSupported
index 257c6d29c4a2ff33586bcbbd97417e98c57d15a1..04aa1aa3684113bcf306fa536890df6b92e6f4e8 100644 (file)
@@ -46,7 +46,7 @@ extern NSString * const HBVideoChangedNotification;
 
 @property (nonatomic, readwrite) BOOL fastDecode;
 
-@property (nonatomic, readwrite, assign) HBJob *job;
+@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
 @property (nonatomic, readonly) NSString *completeTune;
 
 @end
index a5bbd15d759cbe89a791f3d1d2fb28c57677a2f9..f4cdaf424359301b28eda56085a748995770eac2 100644 (file)
@@ -162,15 +162,12 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
 
 - (void)setPreset:(NSString *)preset
 {
-    [_preset autorelease];
     _preset = [preset copy];
     [self postChangedNotification];
 }
 
 - (void)setTune:(NSString *)tune
 {
-    [_tune autorelease];
-
     if (![tune isEqualToString:@"none"])
     {
         _tune = [tune copy];
@@ -185,21 +182,18 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
 
 - (void)setProfile:(NSString *)profile
 {
-    [_profile autorelease];
     _profile = [profile copy];
     [self postChangedNotification];
 }
 
 - (void)setLevel:(NSString *)level
 {
-    [_level autorelease];
     _level = [level copy];
     [self postChangedNotification];
 }
 
 - (void)setVideoOptionExtra:(NSString *)videoOptionExtra
 {
-    [_videoOptionExtra autorelease];
     if (videoOptionExtra != nil)
     {
         _videoOptionExtra = [videoOptionExtra copy];
@@ -305,7 +299,7 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
         }
     }
 
-    return [[temp copy] autorelease];
+    return [temp copy];
 }
 
 - (NSArray *)tunes
@@ -325,7 +319,7 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
         }
     }
 
-    return [[temp copy] autorelease];
+    return [temp copy];
 }
 
 - (NSArray *)profiles
@@ -338,7 +332,7 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
         [temp addObject:@(profiles[i])];
     }
 
-    return [[temp copy] autorelease];
+    return [temp copy];
 }
 
 - (NSArray *)levels
@@ -355,7 +349,7 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
         [temp addObject:@"auto"];
     }
 
-    return [[temp copy] autorelease];
+    return [temp copy];
 }
 
 #pragma mark - NSCopying
@@ -497,7 +491,7 @@ NSString * const HBVideoChangedNotification = @"HBVideoChangedNotification";
         [string appendString:@"fastdecode"];
     }
 
-    return [string autorelease];
+    return string;
 }
 
 - (void)applyPreset:(NSDictionary *)preset
index d62edf45ab0378d4cd05afce1a119a23a5639dc0..6ea8bc41c6524d7385ed11f16ae44391dede0c0a 100644 (file)
@@ -16,6 +16,6 @@
 
 - (instancetype)initWithAdvancedController:(HBAdvancedController *)advancedController;
 
-@property (nonatomic, readwrite, assign) HBJob *job;
+@property (nonatomic, readwrite, unsafe_unretained) HBJob *job;
 
 @end
index 16b1c6d7e6123ddae787a204270362502b12ca34..0ffc87b5d39870dc8b1cdbb48bc5c82fa1896bc1 100644 (file)
@@ -36,8 +36,8 @@ static void *HBVideoControllerContext = &HBVideoControllerContext;
     IBOutlet NSTextField *fDisplayX264PresetsUnparseTextField;
 }
 
-@property (nonatomic, retain, readwrite) HBAdvancedController *advancedController;
-@property (nonatomic, readwrite, assign) HBVideo *video;
+@property (nonatomic, strong, readwrite) HBAdvancedController *advancedController;
+@property (nonatomic, readwrite, unsafe_unretained) HBVideo *video;
 
 @property (nonatomic, readwrite) BOOL presetViewEnabled;
 
@@ -52,7 +52,7 @@ static void *HBVideoControllerContext = &HBVideoControllerContext;
     self = [self init];
     if (self)
     {
-        _advancedController = [advancedController retain];
+        _advancedController = advancedController;
     }
     return self;
 }
@@ -62,7 +62,7 @@ static void *HBVideoControllerContext = &HBVideoControllerContext;
     self = [super initWithNibName:@"Video" bundle:nil];
     if (self)
     {
-        _labelColor = [[NSColor disabledControlTextColor] retain];
+        _labelColor = [NSColor disabledControlTextColor];
 
         // Observe the advanced tab pref shown/hided state.
         [[NSUserDefaultsController sharedUserDefaultsController] addObserver:self
@@ -196,7 +196,7 @@ static void *HBVideoControllerContext = &HBVideoControllerContext;
     // Replace the slider transformer with a new one,
     // configured with the new max/min/direction values.
     [fVidQualitySlider unbind:@"value"];
-    HBQualityTransformer *transformer = [[[HBQualityTransformer alloc] initWithReversedDirection:(direction != 0) min:minValue max:maxValue] autorelease];
+    HBQualityTransformer *transformer = [[HBQualityTransformer alloc] initWithReversedDirection:(direction != 0) min:minValue max:maxValue];
     [fVidQualitySlider bind:@"value" toObject:self withKeyPath:@"self.video.quality" options:@{NSValueTransformerBindingOption: transformer}];
 }
 
@@ -280,7 +280,7 @@ static void *HBVideoControllerContext = &HBVideoControllerContext;
     // Bind the slider value to a custom value transformer,
     // done here because it can't be done in IB.
     [fPresetsSlider unbind:@"value"];
-    HBPresetsTransformer *transformer = [[[HBPresetsTransformer alloc] initWithEncoder:self.video.encoder] autorelease];
+    HBPresetsTransformer *transformer = [[HBPresetsTransformer alloc] initWithEncoder:self.video.encoder];
     [fPresetsSlider bind:@"value" toObject:self withKeyPath:@"self.video.preset" options:@{NSValueTransformerBindingOption: transformer}];
 }
 
index 2b2ae6f3cada20113b1f430259a3bbbe07c0aab5..d4581b9b59ffab383c2e86238f488ae4db75fb68 100644 (file)
                273F1FE014AD9DA40021BE6D /* Project object */ = {
                        isa = PBXProject;
                        attributes = {
-                               LastUpgradeCheck = 0620;
+                               LastUpgradeCheck = 0630;
                        };
                        buildConfigurationList = 273F1FE314AD9DA40021BE6D /* Build configuration list for PBXProject "HandBrake" */;
                        compatibilityVersion = "Xcode 3.2";
                                EXTERNAL_SRC = ..;
                                GCC_C_LANGUAGE_STANDARD = gnu99;
                                GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+                               GCC_NO_COMMON_BLOCKS = YES;
                                GCC_OPTIMIZATION_LEVEL = 0;
                                GCC_PREPROCESSOR_DEFINITIONS = (
                                        "DEBUG=1",
                                EXTERNAL_SRC = ..;
                                GCC_C_LANGUAGE_STANDARD = gnu99;
                                GCC_ENABLE_OBJC_EXCEPTIONS = YES;
+                               GCC_NO_COMMON_BLOCKS = YES;
                                GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
                                GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
                                GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES;
                273F205414ADBC210021BE6D /* debug */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               CLANG_ENABLE_OBJC_ARC = YES;
                                COMBINE_HIDPI_IMAGES = YES;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
                273F205514ADBC210021BE6D /* release */ = {
                        isa = XCBuildConfiguration;
                        buildSettings = {
+                               CLANG_ENABLE_OBJC_ARC = YES;
                                COMBINE_HIDPI_IMAGES = YES;
                                FRAMEWORK_SEARCH_PATHS = (
                                        "$(inherited)",
index a4579d8bc69a0ba09126de101c6b812841667fab..689602912f4a8466ba5213a1929a86f3bb310135 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0620"
+   LastUpgradeVersion = "0630"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
index ff1af58b1c8e6a83e0f56466121f70ac68e3a3ee..0409cfdd9ab2cf2e6f8c19619124f167f722d40b 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Scheme
-   LastUpgradeVersion = "0620"
+   LastUpgradeVersion = "0630"
    version = "1.3">
    <BuildAction
       parallelizeBuildables = "YES"
index 842da1121080d0e7ff09c5ca3bf02bf0c68be660..7cfbfc75553c68151efec80a9382e52b0672d2ee 100644 (file)
@@ -18,6 +18,6 @@
 #define decodeInteger(x) x = [decoder decodeIntegerForKey:OBJC_STRINGIFY(x)]
 #define decodeBool(x) x = [decoder decodeBoolForKey:OBJC_STRINGIFY(x)]
 #define decodeDouble(x) x = [decoder decodeDoubleForKey:OBJC_STRINGIFY(x)]
-#define decodeObject(x) x = [[decoder decodeObjectForKey:OBJC_STRINGIFY(x)] retain]
+#define decodeObject(x) x = [decoder decodeObjectForKey:OBJC_STRINGIFY(x)]
 
 #endif