From 845dfe6017dc0c0d60d3e9bcaecac4e3927d2f9d Mon Sep 17 00:00:00 2001 From: Dmitry Serov Date: Sat, 29 Jul 2017 23:14:22 +0700 Subject: [PATCH] Transition to ARC --- Transmission.xcodeproj/project.pbxproj | 249 +++++++++++--------- macosx/AboutWindowController.m | 5 +- macosx/AddMagnetWindowController.m | 11 +- macosx/AddWindowController.m | 21 +- macosx/BadgeView.m | 6 - macosx/Badger.m | 6 - macosx/BlocklistDownloader.m | 21 +- macosx/BlocklistDownloaderViewController.m | 4 +- macosx/BlocklistScheduler.m | 2 - macosx/BonjourController.m | 6 - macosx/ButtonToolbarItem.m | 2 +- macosx/Controller.h | 6 +- macosx/Controller.m | 146 +++--------- macosx/CreatorWindowController.m | 43 ++-- macosx/DragOverlayView.m | 12 - macosx/DragOverlayWindow.m | 4 - macosx/FileListNode.h | 10 +- macosx/FileListNode.m | 20 +- macosx/FileNameCell.m | 17 +- macosx/FileOutlineController.m | 23 +- macosx/FileOutlineView.m | 6 - macosx/FilePriorityCell.m | 1 - macosx/FileRenameSheetController.h | 16 +- macosx/FileRenameSheetController.m | 20 +- macosx/FilterBarController.m | 4 +- macosx/FilterBarView.m | 5 - macosx/GlobalOptionsPopoverViewController.m | 4 +- macosx/GroupToolbarItem.m | 15 +- macosx/GroupsController.m | 19 +- macosx/GroupsPrefsController.m | 10 +- macosx/InfoActivityViewController.m | 5 +- macosx/InfoFileViewController.m | 9 +- macosx/InfoGeneralViewController.m | 9 +- macosx/InfoOptionsViewController.m | 9 +- macosx/InfoPeersViewController.m | 16 +- macosx/InfoTabButtonBack.m | 5 - macosx/InfoTabButtonCell.m | 6 +- macosx/InfoTrackersViewController.m | 24 +- macosx/InfoWindowController.m | 13 +- macosx/MessageWindowController.m | 18 +- macosx/NSImageAdditions.m | 2 +- macosx/NSMutableArrayAdditions.m | 3 +- macosx/NSStringAdditions.m | 2 - macosx/PeerProgressIndicatorCell.m | 9 +- macosx/PiecesView.m | 9 +- macosx/PortChecker.m | 10 +- macosx/PrefsController.m | 33 +-- macosx/ProgressGradients.m | 2 +- macosx/ShareToolbarItem.m | 1 - macosx/ShareTorrentFileHelper.m | 1 - macosx/StatsWindowController.m | 7 +- macosx/StatusBarController.m | 1 - macosx/StatusBarView.m | 5 +- macosx/Torrent.m | 76 +++--- macosx/TorrentCell.m | 21 +- macosx/TorrentGroup.m | 5 - macosx/TorrentTableView.m | 19 +- macosx/TrackerCell.m | 19 +- macosx/TrackerNode.h | 4 +- macosx/TrackerNode.m | 4 +- macosx/URLSheetWindowController.m | 2 +- macosx/VDKQueue/VDKQueue.h | 6 +- macosx/VDKQueue/VDKQueue.m | 33 +-- 63 files changed, 335 insertions(+), 767 deletions(-) diff --git a/Transmission.xcodeproj/project.pbxproj b/Transmission.xcodeproj/project.pbxproj index 3cd50c00f..b7279224a 100644 --- a/Transmission.xcodeproj/project.pbxproj +++ b/Transmission.xcodeproj/project.pbxproj @@ -7,37 +7,37 @@ objects = { /* Begin PBXBuildFile section */ - 0A6169A70FE5C9A200C66CE6 /* bitfield.c in Sources */ = {isa = PBXBuildFile; fileRef = 0A6169A50FE5C9A200C66CE6 /* bitfield.c */; }; + 0A6169A70FE5C9A200C66CE6 /* bitfield.c in Sources */ = {isa = PBXBuildFile; fileRef = 0A6169A50FE5C9A200C66CE6 /* bitfield.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 0A6169A80FE5C9A200C66CE6 /* bitfield.h in Headers */ = {isa = PBXBuildFile; fileRef = 0A6169A60FE5C9A200C66CE6 /* bitfield.h */; }; 35F373030C2DA89000DAA8F2 /* FilePriorityCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 35F373010C2DA88F00DAA8F2 /* FilePriorityCell.m */; }; - 3C7A11970D0B2EE300B5701F /* getgateway.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A11910D0B2EE300B5701F /* getgateway.c */; }; + 3C7A11970D0B2EE300B5701F /* getgateway.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A11910D0B2EE300B5701F /* getgateway.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 3C7A11980D0B2EE300B5701F /* getgateway.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C7A11920D0B2EE300B5701F /* getgateway.h */; }; - 3C7A11990D0B2EE300B5701F /* natpmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A11930D0B2EE300B5701F /* natpmp.c */; }; + 3C7A11990D0B2EE300B5701F /* natpmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 3C7A11930D0B2EE300B5701F /* natpmp.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 3C7A119A0D0B2EE300B5701F /* natpmp.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C7A11940D0B2EE300B5701F /* natpmp.h */; }; - 4394AC670C74FB6000F367E8 /* ptrarray.c in Sources */ = {isa = PBXBuildFile; fileRef = 4394AC640C74FB6000F367E8 /* ptrarray.c */; }; + 4394AC670C74FB6000F367E8 /* ptrarray.c in Sources */ = {isa = PBXBuildFile; fileRef = 4394AC640C74FB6000F367E8 /* ptrarray.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D043A7F090AE979009FEDA8 /* TransmissionDocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = 4D043A7E090AE979009FEDA8 /* TransmissionDocument.icns */; }; 4D118E1A08CB46B20033958F /* PrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D118E1908CB46B20033958F /* PrefsController.m */; }; 4D1838DD09DEC0E80047D688 /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; }; 4D364DA0091FBB2C00377D12 /* TorrentTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4D364D9F091FBB2C00377D12 /* TorrentTableView.m */; }; - 4D36BA6F0CA2F00800A63CA5 /* crypto.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA600CA2F00800A63CA5 /* crypto.c */; }; + 4D36BA6F0CA2F00800A63CA5 /* crypto.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA600CA2F00800A63CA5 /* crypto.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D36BA700CA2F00800A63CA5 /* crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA610CA2F00800A63CA5 /* crypto.h */; }; - 4D36BA720CA2F00800A63CA5 /* handshake.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA630CA2F00800A63CA5 /* handshake.c */; }; + 4D36BA720CA2F00800A63CA5 /* handshake.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA630CA2F00800A63CA5 /* handshake.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D36BA730CA2F00800A63CA5 /* handshake.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA640CA2F00800A63CA5 /* handshake.h */; }; - 4D36BA740CA2F00800A63CA5 /* peer-io.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA650CA2F00800A63CA5 /* peer-io.c */; }; + 4D36BA740CA2F00800A63CA5 /* peer-io.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA650CA2F00800A63CA5 /* peer-io.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D36BA750CA2F00800A63CA5 /* peer-io.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA660CA2F00800A63CA5 /* peer-io.h */; }; - 4D36BA770CA2F00800A63CA5 /* peer-mgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA680CA2F00800A63CA5 /* peer-mgr.c */; }; + 4D36BA770CA2F00800A63CA5 /* peer-mgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA680CA2F00800A63CA5 /* peer-mgr.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D36BA780CA2F00800A63CA5 /* peer-mgr.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA690CA2F00800A63CA5 /* peer-mgr.h */; }; - 4D36BA790CA2F00800A63CA5 /* peer-msgs.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA6A0CA2F00800A63CA5 /* peer-msgs.c */; }; + 4D36BA790CA2F00800A63CA5 /* peer-msgs.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D36BA6A0CA2F00800A63CA5 /* peer-msgs.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D36BA7A0CA2F00800A63CA5 /* peer-msgs.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA6B0CA2F00800A63CA5 /* peer-msgs.h */; }; 4D36BA7B0CA2F00800A63CA5 /* ptrarray.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D36BA6C0CA2F00800A63CA5 /* ptrarray.h */; }; 4D3EA0AA08AE13C600EA10C2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D3EA0A908AE13C600EA10C2 /* IOKit.framework */; }; - 4D4ADFC70DA1631500A68297 /* blocklist.c in Sources */ = {isa = PBXBuildFile; fileRef = A2D3078E0D9EC45F0051FD27 /* blocklist.c */; }; - 4D8017EA10BBC073008A4AF2 /* torrent-magnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D8017E810BBC073008A4AF2 /* torrent-magnet.c */; }; + 4D4ADFC70DA1631500A68297 /* blocklist.c in Sources */ = {isa = PBXBuildFile; fileRef = A2D3078E0D9EC45F0051FD27 /* blocklist.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + 4D8017EA10BBC073008A4AF2 /* torrent-magnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D8017E810BBC073008A4AF2 /* torrent-magnet.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D8017EB10BBC073008A4AF2 /* torrent-magnet.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D8017E910BBC073008A4AF2 /* torrent-magnet.h */; }; - 4D80185910BBC0B0008A4AF2 /* magnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D80185710BBC0B0008A4AF2 /* magnet.c */; }; + 4D80185910BBC0B0008A4AF2 /* magnet.c in Sources */ = {isa = PBXBuildFile; fileRef = 4D80185710BBC0B0008A4AF2 /* magnet.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4D80185A10BBC0B0008A4AF2 /* magnet.h in Headers */ = {isa = PBXBuildFile; fileRef = 4D80185810BBC0B0008A4AF2 /* magnet.h */; }; 4D9A2BF009E16D21002D0FF9 /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; }; - 4DB74F080E8CD75100AEB1A8 /* wildmat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DB74F070E8CD75100AEB1A8 /* wildmat.c */; }; + 4DB74F080E8CD75100AEB1A8 /* wildmat.c in Sources */ = {isa = PBXBuildFile; fileRef = 4DB74F070E8CD75100AEB1A8 /* wildmat.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 4DCCBB3E09C3D71100D3CABF /* TorrentCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DCCBB3C09C3D71100D3CABF /* TorrentCell.m */; }; 4DE5CC9D0980656F00BE280E /* NSStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DE5CC9C0980656F00BE280E /* NSStringAdditions.m */; }; 4DE5CCA70980735700BE280E /* Badger.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DE5CCA60980735700BE280E /* Badger.m */; }; @@ -48,30 +48,30 @@ 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; A200B9200A22798F007BBB1E /* InfoWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A200B83A0A2263BA007BBB1E /* InfoWindowController.m */; }; - A201527E0D1C270F0081714F /* torrent-ctor.c in Sources */ = {isa = PBXBuildFile; fileRef = A20152790D1C26EB0081714F /* torrent-ctor.c */; }; - A20162C913DE48BF00E15488 /* receivedata.c in Sources */ = {isa = PBXBuildFile; fileRef = A20162C713DE48BF00E15488 /* receivedata.c */; }; + A201527E0D1C270F0081714F /* torrent-ctor.c in Sources */ = {isa = PBXBuildFile; fileRef = A20152790D1C26EB0081714F /* torrent-ctor.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A20162C913DE48BF00E15488 /* receivedata.c in Sources */ = {isa = PBXBuildFile; fileRef = A20162C713DE48BF00E15488 /* receivedata.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A20162CA13DE48BF00E15488 /* receivedata.h in Headers */ = {isa = PBXBuildFile; fileRef = A20162C813DE48BF00E15488 /* receivedata.h */; }; - A20162CD13DE497000E15488 /* portlistingparse.c in Sources */ = {isa = PBXBuildFile; fileRef = A20162CB13DE497000E15488 /* portlistingparse.c */; }; + A20162CD13DE497000E15488 /* portlistingparse.c in Sources */ = {isa = PBXBuildFile; fileRef = A20162CB13DE497000E15488 /* portlistingparse.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A20162CE13DE497000E15488 /* portlistingparse.h in Headers */ = {isa = PBXBuildFile; fileRef = A20162CC13DE497000E15488 /* portlistingparse.h */; }; A20162D013DE49E500E15488 /* miniupnpctypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A20162CF13DE49E500E15488 /* miniupnpctypes.h */; }; - A2074F4C12BEA8CE00F70985 /* buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F4B12BEA8CE00F70985 /* buffer.c */; }; - A2074F5912BEA8E000F70985 /* bufferevent_filter.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5012BEA8E000F70985 /* bufferevent_filter.c */; }; - A2074F5A12BEA8E000F70985 /* bufferevent_openssl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5112BEA8E000F70985 /* bufferevent_openssl.c */; }; - A2074F5B12BEA8E000F70985 /* bufferevent_pair.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5212BEA8E000F70985 /* bufferevent_pair.c */; }; - A2074F5D12BEA8E000F70985 /* bufferevent_sock.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5412BEA8E000F70985 /* bufferevent_sock.c */; }; - A2074F5E12BEA8E000F70985 /* bufferevent.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5512BEA8E000F70985 /* bufferevent.c */; }; - A2074F7412BEAA3300F70985 /* event.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F7312BEAA3300F70985 /* event.c */; }; - A2074F8512BEAA6600F70985 /* evmap.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F8412BEAA6600F70985 /* evmap.c */; }; - A2074F9912BEAAAF00F70985 /* evthread.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F9812BEAAAF00F70985 /* evthread.c */; }; - A2074FA312BEAAC600F70985 /* evutil.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FA212BEAAC600F70985 /* evutil.c */; }; - A2074FAB12BEAAFF00F70985 /* http.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FAA12BEAAFF00F70985 /* http.c */; }; - A2074FB712BEAB1E00F70985 /* listener.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FB612BEAB1E00F70985 /* listener.c */; }; - A2074FBF12BEAB9A00F70985 /* kqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FBE12BEAB9A00F70985 /* kqueue.c */; }; - A2074FC712BEABC800F70985 /* log.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FC612BEABC800F70985 /* log.c */; }; - A2074FDE12BEAC5000F70985 /* signal.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FDD12BEAC5000F70985 /* signal.c */; }; - A207503512BEAD9C00F70985 /* select.c in Sources */ = {isa = PBXBuildFile; fileRef = A207503412BEAD9C00F70985 /* select.c */; }; - A207503712BEADA200F70985 /* poll.c in Sources */ = {isa = PBXBuildFile; fileRef = A207503612BEADA200F70985 /* poll.c */; }; - A20750B812BEB66900F70985 /* bufferevent_ratelim.c in Sources */ = {isa = PBXBuildFile; fileRef = A20750B712BEB66900F70985 /* bufferevent_ratelim.c */; }; + A2074F4C12BEA8CE00F70985 /* buffer.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F4B12BEA8CE00F70985 /* buffer.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F5912BEA8E000F70985 /* bufferevent_filter.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5012BEA8E000F70985 /* bufferevent_filter.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F5A12BEA8E000F70985 /* bufferevent_openssl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5112BEA8E000F70985 /* bufferevent_openssl.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F5B12BEA8E000F70985 /* bufferevent_pair.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5212BEA8E000F70985 /* bufferevent_pair.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F5D12BEA8E000F70985 /* bufferevent_sock.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5412BEA8E000F70985 /* bufferevent_sock.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F5E12BEA8E000F70985 /* bufferevent.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F5512BEA8E000F70985 /* bufferevent.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F7412BEAA3300F70985 /* event.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F7312BEAA3300F70985 /* event.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F8512BEAA6600F70985 /* evmap.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F8412BEAA6600F70985 /* evmap.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074F9912BEAAAF00F70985 /* evthread.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074F9812BEAAAF00F70985 /* evthread.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074FA312BEAAC600F70985 /* evutil.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FA212BEAAC600F70985 /* evutil.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074FAB12BEAAFF00F70985 /* http.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FAA12BEAAFF00F70985 /* http.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074FB712BEAB1E00F70985 /* listener.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FB612BEAB1E00F70985 /* listener.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074FBF12BEAB9A00F70985 /* kqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FBE12BEAB9A00F70985 /* kqueue.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074FC712BEABC800F70985 /* log.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FC612BEABC800F70985 /* log.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2074FDE12BEAC5000F70985 /* signal.c in Sources */ = {isa = PBXBuildFile; fileRef = A2074FDD12BEAC5000F70985 /* signal.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A207503512BEAD9C00F70985 /* select.c in Sources */ = {isa = PBXBuildFile; fileRef = A207503412BEAD9C00F70985 /* select.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A207503712BEADA200F70985 /* poll.c in Sources */ = {isa = PBXBuildFile; fileRef = A207503612BEADA200F70985 /* poll.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A20750B812BEB66900F70985 /* bufferevent_ratelim.c in Sources */ = {isa = PBXBuildFile; fileRef = A20750B712BEB66900F70985 /* bufferevent_ratelim.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2085DDC0C53BC74000BC3B7 /* AboutWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A2085DDA0C53BC74000BC3B7 /* AboutWindowController.m */; }; A209EAC61142CF28002B02D1 /* InfoActivityViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A209EAC31142CF28002B02D1 /* InfoActivityViewController.m */; }; A209EAC71142CF28002B02D1 /* InfoGeneralViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A209EAC51142CF28002B02D1 /* InfoGeneralViewController.m */; }; @@ -86,7 +86,7 @@ A209EBF91142FEEE002B02D1 /* InfoOptionsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A209EBF81142FEEE002B02D1 /* InfoOptionsViewController.m */; }; A209EC12114301C6002B02D1 /* InfoOptionsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A209EC11114301C6002B02D1 /* InfoOptionsView.xib */; }; A209ECA2114319C3002B02D1 /* InfoWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A209ECA1114319C3002B02D1 /* InfoWindow.xib */; }; - A209EE5C1144B51E002B02D1 /* history.c in Sources */ = {isa = PBXBuildFile; fileRef = A209EE5A1144B51E002B02D1 /* history.c */; }; + A209EE5C1144B51E002B02D1 /* history.c in Sources */ = {isa = PBXBuildFile; fileRef = A209EE5A1144B51E002B02D1 /* history.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A209EE5D1144B51E002B02D1 /* history.h in Headers */ = {isa = PBXBuildFile; fileRef = A209EE5B1144B51E002B02D1 /* history.h */; }; A20BFFB70D091CC700CE5D2B /* ToolbarSegmentedCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A20BFFB60D091CC700CE5D2B /* ToolbarSegmentedCell.m */; }; A21282A80CA6C66800EAEE0F /* StatusBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = A21282A60CA6C66800EAEE0F /* StatusBarView.m */; }; @@ -97,9 +97,9 @@ A21F15AC11729A8B00CF5A9C /* AddMagnetWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A21F15AA11729A8B00CF5A9C /* AddMagnetWindowController.m */; }; A21F15AD11729A9F00CF5A9C /* AddMagnetWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A21F1538117299F100CF5A9C /* AddMagnetWindow.xib */; }; A21FBBAB0EDA78C300BC3C51 /* bandwidth.h in Headers */ = {isa = PBXBuildFile; fileRef = A21FBBA90EDA78C300BC3C51 /* bandwidth.h */; }; - A21FBBAC0EDA78C300BC3C51 /* bandwidth.c in Sources */ = {isa = PBXBuildFile; fileRef = A21FBBAA0EDA78C300BC3C51 /* bandwidth.c */; }; + A21FBBAC0EDA78C300BC3C51 /* bandwidth.c in Sources */ = {isa = PBXBuildFile; fileRef = A21FBBAA0EDA78C300BC3C51 /* bandwidth.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A220AF7B13D7CC460035C512 /* GlobalOptionsPopover.xib in Resources */ = {isa = PBXBuildFile; fileRef = A220AF7913D7CC460035C512 /* GlobalOptionsPopover.xib */; }; - A220EC5B118C8A060022B4BE /* tr-lpd.c in Sources */ = {isa = PBXBuildFile; fileRef = A220EC59118C8A060022B4BE /* tr-lpd.c */; }; + A220EC5B118C8A060022B4BE /* tr-lpd.c in Sources */ = {isa = PBXBuildFile; fileRef = A220EC59118C8A060022B4BE /* tr-lpd.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A220EC5C118C8A060022B4BE /* tr-lpd.h in Headers */ = {isa = PBXBuildFile; fileRef = A220EC5A118C8A060022B4BE /* tr-lpd.h */; }; A22180980D148A71007D09ED /* GroupsPrefsController.m in Sources */ = {isa = PBXBuildFile; fileRef = A22180970D148A71007D09ED /* GroupsPrefsController.m */; }; A221DCC8104B3660008A642D /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A221DCC7104B3660008A642D /* Quartz.framework */; }; @@ -118,13 +118,13 @@ A2290D311442B23200B95A09 /* libcurl.4.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2290D2D1442B23200B95A09 /* libcurl.4.dylib */; }; A22A8D560AEEAFA5007E9CB9 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A22A8D540AEEAFA5007E9CB9 /* Localizable.strings */; }; A22B00B2116A9E9F003315FC /* connecthostport.h in Headers */ = {isa = PBXBuildFile; fileRef = A22B00AF116A9E90003315FC /* connecthostport.h */; }; - A22B00B3116A9EA4003315FC /* connecthostport.c in Sources */ = {isa = PBXBuildFile; fileRef = A22B00AE116A9E90003315FC /* connecthostport.c */; }; + A22B00B3116A9EA4003315FC /* connecthostport.c in Sources */ = {isa = PBXBuildFile; fileRef = A22B00AE116A9E90003315FC /* connecthostport.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A22BAE281388040500FB022F /* NSMutableArrayAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A22BAE271388040500FB022F /* NSMutableArrayAdditions.m */; }; A22CFB820FB66EF30009BD3E /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A22CFB810FB66EF30009BD3E /* Carbon.framework */; }; - A22CFCA80FC24ED80009BD3E /* tr-dht.c in Sources */ = {isa = PBXBuildFile; fileRef = A22CFCA60FC24ED80009BD3E /* tr-dht.c */; }; + A22CFCA80FC24ED80009BD3E /* tr-dht.c in Sources */ = {isa = PBXBuildFile; fileRef = A22CFCA60FC24ED80009BD3E /* tr-dht.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A22CFCA90FC24ED80009BD3E /* tr-dht.h in Headers */ = {isa = PBXBuildFile; fileRef = A22CFCA70FC24ED80009BD3E /* tr-dht.h */; }; A22CFCC20FC24F890009BD3E /* dht.h in Headers */ = {isa = PBXBuildFile; fileRef = A22CFCC00FC24F890009BD3E /* dht.h */; }; - A22CFCC30FC24F890009BD3E /* dht.c in Sources */ = {isa = PBXBuildFile; fileRef = A22CFCC10FC24F890009BD3E /* dht.c */; }; + A22CFCC30FC24F890009BD3E /* dht.c in Sources */ = {isa = PBXBuildFile; fileRef = A22CFCC10FC24F890009BD3E /* dht.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A22CFCCB0FC24FDA0009BD3E /* libdht.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A22CFCBA0FC24F710009BD3E /* libdht.a */; }; A22CFCCD0FC250480009BD3E /* libevent.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE75C3490C729E9500DBEFE0 /* libevent.a */; }; A22F1E550E7DA8030065DB9D /* sparkle_dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = A22F1E540E7DA8030065DB9D /* sparkle_dsa_pub.pem */; }; @@ -133,21 +133,21 @@ A233BD330D8C6585007EE7B4 /* MessageWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A233BD320D8C6585007EE7B4 /* MessageWindow.xib */; }; A233BD690D8CF2C7007EE7B4 /* StatsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A233BD680D8CF2C7007EE7B4 /* StatsWindow.xib */; }; A234EA541453563B000F3E97 /* NSImageAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A234EA531453563B000F3E97 /* NSImageAdditions.m */; }; - A23547E211CD0B090046EAE6 /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = A23547E011CD0B090046EAE6 /* cache.c */; }; + A23547E211CD0B090046EAE6 /* cache.c in Sources */ = {isa = PBXBuildFile; fileRef = A23547E011CD0B090046EAE6 /* cache.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A23547E311CD0B090046EAE6 /* cache.h in Headers */ = {isa = PBXBuildFile; fileRef = A23547E111CD0B090046EAE6 /* cache.h */; }; A2385DD40BFE06C800B24EF6 /* DragOverlayWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = A2385DD20BFE06C800B24EF6 /* DragOverlayWindow.m */; }; A23F29A1132A447400E9A83B /* announcer-common.h in Headers */ = {isa = PBXBuildFile; fileRef = A23F299F132A447400E9A83B /* announcer-common.h */; }; - A23F29A2132A447400E9A83B /* announcer-http.c in Sources */ = {isa = PBXBuildFile; fileRef = A23F29A0132A447400E9A83B /* announcer-http.c */; }; + A23F29A2132A447400E9A83B /* announcer-http.c in Sources */ = {isa = PBXBuildFile; fileRef = A23F29A0132A447400E9A83B /* announcer-http.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A23F4FF20D1D98AD002FCB97 /* PrefsWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A23F4FF00D1D98AD002FCB97 /* PrefsWindow.xib */; }; A23F50020D1D99D7002FCB97 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = A23F50000D1D99D7002FCB97 /* MainMenu.xib */; }; A23F526F0F14395900AA02E3 /* PredicateEditorRowTemplateAny.m in Sources */ = {isa = PBXBuildFile; fileRef = A23F526E0F14395900AA02E3 /* PredicateEditorRowTemplateAny.m */; }; - A23FAE54178BC2950053DC5B /* platform-quota.c in Sources */ = {isa = PBXBuildFile; fileRef = A23FAE52178BC2950053DC5B /* platform-quota.c */; }; + A23FAE54178BC2950053DC5B /* platform-quota.c in Sources */ = {isa = PBXBuildFile; fileRef = A23FAE52178BC2950053DC5B /* platform-quota.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A23FAE55178BC2950053DC5B /* platform-quota.h in Headers */ = {isa = PBXBuildFile; fileRef = A23FAE53178BC2950053DC5B /* platform-quota.h */; }; A242AD9315F05D23002B3A6C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = A242AD9115F05D23002B3A6C /* Localizable.strings */; }; A2451E6916ACE4EB00586E0E /* FileRenameSheetController.m in Sources */ = {isa = PBXBuildFile; fileRef = A2451E6716ACE4EB00586E0E /* FileRenameSheetController.m */; }; A2451E6A16ACE4EB00586E0E /* FileRenameSheetController.xib in Resources */ = {isa = PBXBuildFile; fileRef = A2451E6816ACE4EB00586E0E /* FileRenameSheetController.xib */; }; A24621410C769D0900088E81 /* trevent.h in Headers */ = {isa = PBXBuildFile; fileRef = A24621350C769CF400088E81 /* trevent.h */; }; - A24621420C769D0900088E81 /* trevent.c in Sources */ = {isa = PBXBuildFile; fileRef = A24621360C769CF400088E81 /* trevent.c */; }; + A24621420C769D0900088E81 /* trevent.c in Sources */ = {isa = PBXBuildFile; fileRef = A24621360C769CF400088E81 /* trevent.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A247A443114C701800547DFC /* InfoViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = A247A442114C701800547DFC /* InfoViewController.h */; }; A24F19080A3A790800C9C145 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A24F19070A3A790800C9C145 /* Sparkle.framework */; }; A24F19210A3A796800C9C145 /* Sparkle.framework in Copy Files */ = {isa = PBXBuildFile; fileRef = A24F19070A3A790800C9C145 /* Sparkle.framework */; }; @@ -157,19 +157,19 @@ A257C1820CAD3003004E121C /* PeerTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A257C1800CAD3003004E121C /* PeerTableView.m */; }; A25892640CF1F7E800CCCDDF /* StatsWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A25892630CF1F7E800CCCDDF /* StatsWindowController.m */; }; A259317E0A73B2CC002F4FE7 /* TransmissionHelp in Resources */ = {isa = PBXBuildFile; fileRef = A259316A0A73B2CC002F4FE7 /* TransmissionHelp */; }; - A25964A6106D73A800453B31 /* announcer.c in Sources */ = {isa = PBXBuildFile; fileRef = A25964A4106D73A800453B31 /* announcer.c */; }; + A25964A6106D73A800453B31 /* announcer.c in Sources */ = {isa = PBXBuildFile; fileRef = A25964A4106D73A800453B31 /* announcer.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A25964A7106D73A800453B31 /* announcer.h in Headers */ = {isa = PBXBuildFile; fileRef = A25964A5106D73A800453B31 /* announcer.h */; }; A25BB02A12F4F517004B724E /* InfoTabButtonBack.m in Sources */ = {isa = PBXBuildFile; fileRef = A25BB02912F4F517004B724E /* InfoTabButtonBack.m */; }; - A25BFD69167BED3B0039D1AA /* variant-benc.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD63167BED3B0039D1AA /* variant-benc.c */; }; + A25BFD69167BED3B0039D1AA /* variant-benc.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD63167BED3B0039D1AA /* variant-benc.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A25BFD6A167BED3B0039D1AA /* variant-common.h in Headers */ = {isa = PBXBuildFile; fileRef = A25BFD64167BED3B0039D1AA /* variant-common.h */; }; - A25BFD6B167BED3B0039D1AA /* variant-json.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD65167BED3B0039D1AA /* variant-json.c */; }; - A25BFD6D167BED3B0039D1AA /* variant.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD67167BED3B0039D1AA /* variant.c */; }; + A25BFD6B167BED3B0039D1AA /* variant-json.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD65167BED3B0039D1AA /* variant-json.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A25BFD6D167BED3B0039D1AA /* variant.c in Sources */ = {isa = PBXBuildFile; fileRef = A25BFD67167BED3B0039D1AA /* variant.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A25BFD6E167BED3B0039D1AA /* variant.h in Headers */ = {isa = PBXBuildFile; fileRef = A25BFD68167BED3B0039D1AA /* variant.h */; }; - A25D2CBD0CF4C73E0096A262 /* stats.c in Sources */ = {isa = PBXBuildFile; fileRef = A25D2CBB0CF4C7190096A262 /* stats.c */; }; + A25D2CBD0CF4C73E0096A262 /* stats.c in Sources */ = {isa = PBXBuildFile; fileRef = A25D2CBB0CF4C7190096A262 /* stats.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A25D2CBE0CF4C73E0096A262 /* stats.h in Headers */ = {isa = PBXBuildFile; fileRef = A25D2CBA0CF4C7190096A262 /* stats.h */; }; A25E03D90E4015100086C225 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; A25E03E20E4015380086C225 /* tr-getopt.h in Headers */ = {isa = PBXBuildFile; fileRef = A25E03E00E4015380086C225 /* tr-getopt.h */; }; - A25E03E30E4015380086C225 /* tr-getopt.c in Sources */ = {isa = PBXBuildFile; fileRef = A25E03E10E4015380086C225 /* tr-getopt.c */; }; + A25E03E30E4015380086C225 /* tr-getopt.c in Sources */ = {isa = PBXBuildFile; fileRef = A25E03E10E4015380086C225 /* tr-getopt.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A25E74650AF5097C006F11AE /* ExpandedPathToPathTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = A25E74440AF5089E006F11AE /* ExpandedPathToPathTransformer.m */; }; A25E74660AF5097D006F11AE /* ExpandedPathToIconTransformer.m in Sources */ = {isa = PBXBuildFile; fileRef = A25E74460AF5089E006F11AE /* ExpandedPathToIconTransformer.m */; }; A261F1DC0A69A1610002815A /* Growl.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A261F1DB0A69A1610002815A /* Growl.framework */; }; @@ -177,7 +177,7 @@ A263CFC010DD67670038DE27 /* InfoTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A263CFBF10DD67670038DE27 /* InfoTextField.m */; }; A2661D6112D0E8D9004F69D5 /* FilterBarView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2661D3B12D0E51B004F69D5 /* FilterBarView.m */; }; A267927C130DFF2700CB7464 /* libutp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A2E38544130DFEE3001F501B /* libutp.a */; }; - A2679294130E00A000CB7464 /* tr-utp.c in Sources */ = {isa = PBXBuildFile; fileRef = A2679292130E00A000CB7464 /* tr-utp.c */; }; + A2679294130E00A000CB7464 /* tr-utp.c in Sources */ = {isa = PBXBuildFile; fileRef = A2679292130E00A000CB7464 /* tr-utp.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2679295130E00A000CB7464 /* tr-utp.h in Headers */ = {isa = PBXBuildFile; fileRef = A2679293130E00A000CB7464 /* tr-utp.h */; }; A26AF21A0D2DA35A00FF7140 /* FileOutlineController.m in Sources */ = {isa = PBXBuildFile; fileRef = A26AF2190D2DA35A00FF7140 /* FileOutlineController.m */; }; A26AF27E0D2DBDDF00FF7140 /* AddWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A26AF27C0D2DBDDF00FF7140 /* AddWindow.xib */; }; @@ -186,12 +186,12 @@ A2725B6E0DE5C4F5003445E7 /* FileListNode.m in Sources */ = {isa = PBXBuildFile; fileRef = A2725B6D0DE5C4F5003445E7 /* FileListNode.m */; }; A2725D5D0DE7507C003445E7 /* TrackerTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2725D5C0DE7507C003445E7 /* TrackerTableView.m */; }; A27F0F330E19AD9800B2DB97 /* TorrentGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = A27F0F320E19AD9800B2DB97 /* TorrentGroup.m */; }; - A284214412DA663E00FBDDBB /* tr-udp.c in Sources */ = {isa = PBXBuildFile; fileRef = A284214212DA663E00FBDDBB /* tr-udp.c */; }; + A284214412DA663E00FBDDBB /* tr-udp.c in Sources */ = {isa = PBXBuildFile; fileRef = A284214212DA663E00FBDDBB /* tr-udp.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A284214512DA663E00FBDDBB /* tr-udp.h in Headers */ = {isa = PBXBuildFile; fileRef = A284214312DA663E00FBDDBB /* tr-udp.h */; }; A28F4F770E085BDC003A3882 /* ColorTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = A28F4F760E085BDC003A3882 /* ColorTextField.m */; }; - A292A6E80DFB45FC004B9C0A /* webseed.c in Sources */ = {isa = PBXBuildFile; fileRef = A292A6E50DFB45EC004B9C0A /* webseed.c */; }; + A292A6E80DFB45FC004B9C0A /* webseed.c in Sources */ = {isa = PBXBuildFile; fileRef = A292A6E50DFB45EC004B9C0A /* webseed.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A29304ED15D7465100B1F726 /* style.css in Resources */ = {isa = PBXBuildFile; fileRef = A29304EC15D7465100B1F726 /* style.css */; }; - A29304EE15D7497C00B1F726 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = A2F35BCD15C5A0A100EBF632 /* main.c */; }; + A29304EE15D7497C00B1F726 /* main.c in Sources */ = {isa = PBXBuildFile; fileRef = A2F35BCD15C5A0A100EBF632 /* main.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A29576030D11D63C0093B167 /* Creator.xib in Resources */ = {isa = PBXBuildFile; fileRef = A29576010D11D63C0093B167 /* Creator.xib */; }; A2966E8713DAF74C007B52DF /* GlobalOptionsPopoverViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A2966E8613DAF74C007B52DF /* GlobalOptionsPopoverViewController.m */; }; A296EF3B11E560A7004A2781 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A296EF3411E5605E004A2781 /* libiconv.dylib */; }; @@ -201,31 +201,31 @@ A29B0C270BD15FEF0006F230 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = A2F8951E0A2D4BA500ED2127 /* Credits.rtf */; }; A29C8B370ACC6EB3000ED9F9 /* PortChecker.m in Sources */ = {isa = PBXBuildFile; fileRef = A29C8B350ACC6EB3000ED9F9 /* PortChecker.m */; }; A29D84041049C25600D1987A /* NSApplicationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A29D84031049C25600D1987A /* NSApplicationAdditions.m */; }; - A29DF8B90DB2544C00D04E5A /* resume.c in Sources */ = {isa = PBXBuildFile; fileRef = A29DF8B60DB2544C00D04E5A /* resume.c */; }; + A29DF8B90DB2544C00D04E5A /* resume.c in Sources */ = {isa = PBXBuildFile; fileRef = A29DF8B60DB2544C00D04E5A /* resume.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A29DF8BA0DB2544C00D04E5A /* resume.h in Headers */ = {isa = PBXBuildFile; fileRef = A29DF8B70DB2544C00D04E5A /* resume.h */; }; A29DF8BB0DB2544C00D04E5A /* torrent.h in Headers */ = {isa = PBXBuildFile; fileRef = A29DF8B80DB2544C00D04E5A /* torrent.h */; }; A29DF8BE0DB2545F00D04E5A /* verify.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D22A110D65EED100007D5F /* verify.h */; }; - A29E653613F1603100048D71 /* evutil_rand.c in Sources */ = {isa = PBXBuildFile; fileRef = A29E653513F1603100048D71 /* evutil_rand.c */; }; + A29E653613F1603100048D71 /* evutil_rand.c in Sources */ = {isa = PBXBuildFile; fileRef = A29E653513F1603100048D71 /* evutil_rand.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2A1CB7A0BF29D5500AE959F /* PeerProgressIndicatorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A1CB780BF29D5500AE959F /* PeerProgressIndicatorCell.m */; }; A2A4E9210DE0F7E9000CE197 /* web.h in Headers */ = {isa = PBXBuildFile; fileRef = A29EBE530DC01FC9006CEE80 /* web.h */; }; - A2A4E9220DE0F7EB000CE197 /* web.c in Sources */ = {isa = PBXBuildFile; fileRef = A29EBE520DC01FC9006CEE80 /* web.c */; }; - A2A4EA0E0DE106EB000CE197 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = A2A4EA0A0DE106E8000CE197 /* ConvertUTF.c */; }; + A2A4E9220DE0F7EB000CE197 /* web.c in Sources */ = {isa = PBXBuildFile; fileRef = A29EBE520DC01FC9006CEE80 /* web.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2A4EA0E0DE106EB000CE197 /* ConvertUTF.c in Sources */ = {isa = PBXBuildFile; fileRef = A2A4EA0A0DE106E8000CE197 /* ConvertUTF.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2A4EA0F0DE106EE000CE197 /* ConvertUTF.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A4EA0B0DE106E8000CE197 /* ConvertUTF.h */; }; A2A6321B0CD9751700E3DA60 /* BadgeView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2A6321A0CD9751700E3DA60 /* BadgeView.m */; }; - A2A7B32A164F87D400B98C65 /* jsonsl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2A7B328164F87D400B98C65 /* jsonsl.c */; }; + A2A7B32A164F87D400B98C65 /* jsonsl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2A7B328164F87D400B98C65 /* jsonsl.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2A7B32B164F87D400B98C65 /* jsonsl.h in Headers */ = {isa = PBXBuildFile; fileRef = A2A7B329164F87D400B98C65 /* jsonsl.h */; }; A2AA579D0ADFCAB400CA59F6 /* PiecesView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AA579B0ADFCAB400CA59F6 /* PiecesView.m */; }; - A2AA9BE1132CAC8E00FA131E /* announcer-udp.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AA9BE0132CAC8D00FA131E /* announcer-udp.c */; }; - A2AA9BE3132CAE2000FA131E /* evdns.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AA9BE2132CAE2000FA131E /* evdns.c */; }; - A2AAB65C0DE0CF6200E04DDA /* rpc-server.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB6580DE0CF6200E04DDA /* rpc-server.c */; }; + A2AA9BE1132CAC8E00FA131E /* announcer-udp.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AA9BE0132CAC8D00FA131E /* announcer-udp.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2AA9BE3132CAE2000FA131E /* evdns.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AA9BE2132CAE2000FA131E /* evdns.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2AAB65C0DE0CF6200E04DDA /* rpc-server.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB6580DE0CF6200E04DDA /* rpc-server.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2AAB65D0DE0CF6200E04DDA /* rpcimpl.h in Headers */ = {isa = PBXBuildFile; fileRef = A2AAB6590DE0CF6200E04DDA /* rpcimpl.h */; }; A2AAB65E0DE0CF6200E04DDA /* rpc-server.h in Headers */ = {isa = PBXBuildFile; fileRef = A2AAB65A0DE0CF6200E04DDA /* rpc-server.h */; }; - A2AAB65F0DE0CF6200E04DDA /* rpcimpl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB65B0DE0CF6200E04DDA /* rpcimpl.c */; }; + A2AAB65F0DE0CF6200E04DDA /* rpcimpl.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AAB65B0DE0CF6200E04DDA /* rpcimpl.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2AAB6650DE0D08B00E04DDA /* blocklist.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D307930D9EC4860051FD27 /* blocklist.h */; }; A2AB76EA15D8130B009EFC95 /* libcurl.4.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2290D2D1442B23200B95A09 /* libcurl.4.dylib */; }; A2AB883E16A399A6008FAD50 /* VDKQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AB883C16A399A6008FAD50 /* VDKQueue.m */; }; A2AF1C390A3D0F6200F1575D /* FileOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2AF1C370A3D0F6200F1575D /* FileOutlineView.m */; }; - A2AF23C816B44FA0003BC59E /* log.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AF23C616B44FA0003BC59E /* log.c */; }; + A2AF23C816B44FA0003BC59E /* log.c in Sources */ = {isa = PBXBuildFile; fileRef = A2AF23C616B44FA0003BC59E /* log.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2AF23C916B44FA0003BC59E /* log.h in Headers */ = {isa = PBXBuildFile; fileRef = A2AF23C716B44FA0003BC59E /* log.h */; }; A2B3FB460E5901E700FF78FB /* cli.c in Sources */ = {isa = PBXBuildFile; fileRef = A2B3FB450E5901E700FF78FB /* cli.c */; }; A2B3FB4C0E59023000FF78FB /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; @@ -235,25 +235,25 @@ A2B6141D1395B0E3000E0975 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2B6141B1395ADE9000E0975 /* libz.dylib */; }; A2B6141E1395B0EC000E0975 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2B6141B1395ADE9000E0975 /* libz.dylib */; }; A2B6141F1395B0F5000E0975 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2B6141B1395ADE9000E0975 /* libz.dylib */; }; - A2BE9C520C1E4AF5002D16E6 /* makemeta.c in Sources */ = {isa = PBXBuildFile; fileRef = A2BE9C4E0C1E4ADA002D16E6 /* makemeta.c */; }; + A2BE9C520C1E4AF5002D16E6 /* makemeta.c in Sources */ = {isa = PBXBuildFile; fileRef = A2BE9C4E0C1E4ADA002D16E6 /* makemeta.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2BE9C530C1E4AF7002D16E6 /* makemeta.h in Headers */ = {isa = PBXBuildFile; fileRef = A2BE9C4F0C1E4ADA002D16E6 /* makemeta.h */; }; A2C89D600CFCBF57004CC2BC /* ButtonToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = A2C89D5F0CFCBF57004CC2BC /* ButtonToolbarItem.m */; }; A2CB38AF0E1E6896002B514C /* COPYING in Resources */ = {isa = PBXBuildFile; fileRef = A2CB38AE0E1E6896002B514C /* COPYING */; }; - A2D22A130D65EEE700007D5F /* verify.c in Sources */ = {isa = PBXBuildFile; fileRef = A2D22A100D65EED100007D5F /* verify.c */; }; + A2D22A130D65EEE700007D5F /* verify.c in Sources */ = {isa = PBXBuildFile; fileRef = A2D22A100D65EED100007D5F /* verify.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2D307A40D9EC6870051FD27 /* BlocklistDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = A2D307A30D9EC6870051FD27 /* BlocklistDownloader.m */; }; A2D307B10D9EC9F50051FD27 /* BlocklistStatusWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = A2D307B00D9EC9F50051FD27 /* BlocklistStatusWindow.xib */; }; A2D77451154CC25700A62B93 /* WebSeedTableView.h in Headers */ = {isa = PBXBuildFile; fileRef = A2D7744F154CC25700A62B93 /* WebSeedTableView.h */; }; - A2D77452154CC25700A62B93 /* WebSeedTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2D77450154CC25700A62B93 /* WebSeedTableView.m */; }; + A2D77452154CC25700A62B93 /* WebSeedTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2D77450154CC25700A62B93 /* WebSeedTableView.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2D77453154CC72B00A62B93 /* WebSeedTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = A2D77450154CC25700A62B93 /* WebSeedTableView.m */; }; - A2D8CFBA15F82DFA0056E93D /* NSApplicationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A29D84031049C25600D1987A /* NSApplicationAdditions.m */; }; - A2D8CFBB15F82E030056E93D /* NSStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DE5CC9C0980656F00BE280E /* NSStringAdditions.m */; }; + A2D8CFBA15F82DFA0056E93D /* NSApplicationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = A29D84031049C25600D1987A /* NSApplicationAdditions.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2D8CFBB15F82E030056E93D /* NSStringAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = 4DE5CC9C0980656F00BE280E /* NSStringAdditions.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2DF37070C220D03006523C1 /* CreatorWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = A2DF37050C220D03006523C1 /* CreatorWindowController.m */; }; A2E23AC60CB5E1930002BB25 /* InfoTabButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = A2E23AC40CB5E1930002BB25 /* InfoTabButtonCell.m */; }; A2E384DA130DFB3A001F501B /* templates.h in Headers */ = {isa = PBXBuildFile; fileRef = A2E384D2130DFB3A001F501B /* templates.h */; }; A2E384DC130DFB3A001F501B /* utp_config.h in Headers */ = {isa = PBXBuildFile; fileRef = A2E384D4130DFB3A001F501B /* utp_config.h */; }; - A2E384DD130DFB3A001F501B /* utp_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2E384D5130DFB3A001F501B /* utp_utils.cpp */; }; + A2E384DD130DFB3A001F501B /* utp_utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2E384D5130DFB3A001F501B /* utp_utils.cpp */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2E384DE130DFB3A001F501B /* utp_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = A2E384D6130DFB3A001F501B /* utp_utils.h */; }; - A2E384DF130DFB3A001F501B /* utp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2E384D7130DFB3A001F501B /* utp.cpp */; }; + A2E384DF130DFB3A001F501B /* utp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A2E384D7130DFB3A001F501B /* utp.cpp */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2E384E0130DFB3A001F501B /* utp.h in Headers */ = {isa = PBXBuildFile; fileRef = A2E384D8130DFB3A001F501B /* utp.h */; }; A2E384E1130DFB3A001F501B /* utypes.h in Headers */ = {isa = PBXBuildFile; fileRef = A2E384D9130DFB3A001F501B /* utypes.h */; }; A2E3850C130DFCCB001F501B /* StdAfx.h in Headers */ = {isa = PBXBuildFile; fileRef = A2E3850B130DFCCB001F501B /* StdAfx.h */; }; @@ -262,15 +262,15 @@ A2E57B9C13109DC200A7DAB1 /* FilterBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = A2E57B9B13109DC200A7DAB1 /* FilterBar.xib */; }; A2E57BA713109E6B00A7DAB1 /* FilterBarController.m in Sources */ = {isa = PBXBuildFile; fileRef = A2E57BA613109E6B00A7DAB1 /* FilterBarController.m */; }; A2E669790F5B8E5A00B4251A /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2E669780F5B8E5A00B4251A /* Security.framework */; }; - A2EA52311686AC0D00180493 /* quark.c in Sources */ = {isa = PBXBuildFile; fileRef = A2EA522F1686AC0D00180493 /* quark.c */; }; + A2EA52311686AC0D00180493 /* quark.c in Sources */ = {isa = PBXBuildFile; fileRef = A2EA522F1686AC0D00180493 /* quark.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2EA52321686AC0D00180493 /* quark.h in Headers */ = {isa = PBXBuildFile; fileRef = A2EA52301686AC0D00180493 /* quark.h */; }; A2EB2E7715C8CF2C00FBD5B4 /* QuickLookPlugin.qlgenerator in CopyFiles */ = {isa = PBXBuildFile; fileRef = A2F35BB915C5A0A100EBF632 /* QuickLookPlugin.qlgenerator */; }; A2ED7D8F0CEF431B00970975 /* FilterButton.m in Sources */ = {isa = PBXBuildFile; fileRef = A2ED7D8E0CEF431B00970975 /* FilterButton.m */; }; A2EE726F14DCCC950093C99A /* natpmp_local.h in Headers */ = {isa = PBXBuildFile; fileRef = A2EE726E14DCCC950093C99A /* natpmp_local.h */; }; A2F35BBC15C5A0A100EBF632 /* QuickLook.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2F35BBB15C5A0A100EBF632 /* QuickLook.framework */; }; A2F35BC815C5A0A100EBF632 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = A2F35BC615C5A0A100EBF632 /* InfoPlist.strings */; }; - A2F35BCA15C5A0A100EBF632 /* GenerateThumbnailForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A2F35BC915C5A0A100EBF632 /* GenerateThumbnailForURL.m */; }; - A2F35BCC15C5A0A100EBF632 /* GeneratePreviewForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A2F35BCB15C5A0A100EBF632 /* GeneratePreviewForURL.m */; }; + A2F35BCA15C5A0A100EBF632 /* GenerateThumbnailForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A2F35BC915C5A0A100EBF632 /* GenerateThumbnailForURL.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + A2F35BCC15C5A0A100EBF632 /* GeneratePreviewForURL.m in Sources */ = {isa = PBXBuildFile; fileRef = A2F35BCB15C5A0A100EBF632 /* GeneratePreviewForURL.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; A2F35BD415C5A19A00EBF632 /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; }; A2F35BD715C5A46D00EBF632 /* libcrypto.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A27653A714369C5C009D3CCF /* libcrypto.dylib */; }; A2F35BDA15C5A49200EBF632 /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = A2B6141B1395ADE9000E0975 /* libz.dylib */; }; @@ -292,14 +292,14 @@ BE11835E0CE160C50002D0F3 /* upnpcommands.h in Headers */ = {isa = PBXBuildFile; fileRef = BE1183540CE160C50002D0F3 /* upnpcommands.h */; }; BE11835F0CE160C50002D0F3 /* miniupnpc.h in Headers */ = {isa = PBXBuildFile; fileRef = BE1183550CE160C50002D0F3 /* miniupnpc.h */; }; BE1183600CE160C50002D0F3 /* minissdpc.h in Headers */ = {isa = PBXBuildFile; fileRef = BE1183560CE160C50002D0F3 /* minissdpc.h */; }; - BE1183690CE160D50002D0F3 /* igd_desc_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183610CE160D50002D0F3 /* igd_desc_parse.c */; }; - BE11836A0CE160D50002D0F3 /* minixml.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183620CE160D50002D0F3 /* minixml.c */; }; - BE11836B0CE160D50002D0F3 /* miniwget.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183630CE160D50002D0F3 /* miniwget.c */; }; - BE11836C0CE160D50002D0F3 /* minissdpc.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183640CE160D50002D0F3 /* minissdpc.c */; }; - BE11836D0CE160D50002D0F3 /* minisoap.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183650CE160D50002D0F3 /* minisoap.c */; }; - BE11836E0CE160D50002D0F3 /* upnpreplyparse.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183660CE160D50002D0F3 /* upnpreplyparse.c */; }; - BE11836F0CE160D50002D0F3 /* upnpcommands.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183670CE160D50002D0F3 /* upnpcommands.c */; }; - BE1183700CE160D50002D0F3 /* miniupnpc.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183680CE160D50002D0F3 /* miniupnpc.c */; }; + BE1183690CE160D50002D0F3 /* igd_desc_parse.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183610CE160D50002D0F3 /* igd_desc_parse.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BE11836A0CE160D50002D0F3 /* minixml.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183620CE160D50002D0F3 /* minixml.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BE11836B0CE160D50002D0F3 /* miniwget.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183630CE160D50002D0F3 /* miniwget.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BE11836C0CE160D50002D0F3 /* minissdpc.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183640CE160D50002D0F3 /* minissdpc.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BE11836D0CE160D50002D0F3 /* minisoap.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183650CE160D50002D0F3 /* minisoap.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BE11836E0CE160D50002D0F3 /* upnpreplyparse.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183660CE160D50002D0F3 /* upnpreplyparse.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BE11836F0CE160D50002D0F3 /* upnpcommands.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183670CE160D50002D0F3 /* upnpcommands.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BE1183700CE160D50002D0F3 /* miniupnpc.c in Sources */ = {isa = PBXBuildFile; fileRef = BE1183680CE160D50002D0F3 /* miniupnpc.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BE1183780CE161390002D0F3 /* libminiupnp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE1183480CE160960002D0F3 /* libminiupnp.a */; }; BE75C38A0C72A1ED00DBEFE0 /* libevent.a in Frameworks */ = {isa = PBXBuildFile; fileRef = BE75C3490C729E9500DBEFE0 /* libevent.a */; }; BEFC1C050C07753500B0BB3C /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; }; @@ -308,60 +308,60 @@ BEFC1D2D0C0783D900B0BB3C /* libtransmission.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D18389709DEC0030047D688 /* libtransmission.a */; }; BEFC1E290C07861A00B0BB3C /* version.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DF00C07861A00B0BB3C /* version.h */; }; BEFC1E2A0C07861A00B0BB3C /* utils.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DF10C07861A00B0BB3C /* utils.h */; }; - BEFC1E2B0C07861A00B0BB3C /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF20C07861A00B0BB3C /* utils.c */; }; + BEFC1E2B0C07861A00B0BB3C /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF20C07861A00B0BB3C /* utils.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E2C0C07861A00B0BB3C /* upnp.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DF30C07861A00B0BB3C /* upnp.h */; }; - BEFC1E2D0C07861A00B0BB3C /* upnp.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF40C07861A00B0BB3C /* upnp.c */; }; - BEFC1E2F0C07861A00B0BB3C /* session.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF60C07861A00B0BB3C /* session.c */; }; - BEFC1E320C07861A00B0BB3C /* torrent.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF90C07861A00B0BB3C /* torrent.c */; }; + BEFC1E2D0C07861A00B0BB3C /* upnp.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF40C07861A00B0BB3C /* upnp.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BEFC1E2F0C07861A00B0BB3C /* session.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF60C07861A00B0BB3C /* session.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BEFC1E320C07861A00B0BB3C /* torrent.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DF90C07861A00B0BB3C /* torrent.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E350C07861A00B0BB3C /* port-forwarding.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1DFC0C07861A00B0BB3C /* port-forwarding.h */; }; - BEFC1E360C07861A00B0BB3C /* port-forwarding.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DFD0C07861A00B0BB3C /* port-forwarding.c */; }; + BEFC1E360C07861A00B0BB3C /* port-forwarding.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1DFD0C07861A00B0BB3C /* port-forwarding.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E3B0C07861A00B0BB3C /* platform.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E020C07861A00B0BB3C /* platform.h */; }; - BEFC1E3C0C07861A00B0BB3C /* platform.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E030C07861A00B0BB3C /* platform.c */; }; + BEFC1E3C0C07861A00B0BB3C /* platform.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E030C07861A00B0BB3C /* platform.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E450C07861A00B0BB3C /* net.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E0C0C07861A00B0BB3C /* net.h */; }; - BEFC1E460C07861A00B0BB3C /* net.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0D0C07861A00B0BB3C /* net.c */; }; - BEFC1E480C07861A00B0BB3C /* natpmp.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0F0C07861A00B0BB3C /* natpmp.c */; }; + BEFC1E460C07861A00B0BB3C /* net.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0D0C07861A00B0BB3C /* net.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + BEFC1E480C07861A00B0BB3C /* natpmp.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E0F0C07861A00B0BB3C /* natpmp.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E490C07861A00B0BB3C /* metainfo.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E100C07861A00B0BB3C /* metainfo.h */; }; - BEFC1E4A0C07861A00B0BB3C /* metainfo.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E110C07861A00B0BB3C /* metainfo.c */; }; + BEFC1E4A0C07861A00B0BB3C /* metainfo.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E110C07861A00B0BB3C /* metainfo.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E4D0C07861A00B0BB3C /* session.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E140C07861A00B0BB3C /* session.h */; }; BEFC1E4E0C07861A00B0BB3C /* inout.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E150C07861A00B0BB3C /* inout.h */; }; - BEFC1E4F0C07861A00B0BB3C /* inout.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E160C07861A00B0BB3C /* inout.c */; }; + BEFC1E4F0C07861A00B0BB3C /* inout.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E160C07861A00B0BB3C /* inout.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E520C07861A00B0BB3C /* fdlimit.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E190C07861A00B0BB3C /* fdlimit.h */; }; - BEFC1E530C07861A00B0BB3C /* fdlimit.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1A0C07861A00B0BB3C /* fdlimit.c */; }; + BEFC1E530C07861A00B0BB3C /* fdlimit.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1A0C07861A00B0BB3C /* fdlimit.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E550C07861A00B0BB3C /* completion.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E1C0C07861A00B0BB3C /* completion.h */; }; - BEFC1E560C07861A00B0BB3C /* completion.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1D0C07861A00B0BB3C /* completion.c */; }; + BEFC1E560C07861A00B0BB3C /* completion.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1D0C07861A00B0BB3C /* completion.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; BEFC1E570C07861A00B0BB3C /* clients.h in Headers */ = {isa = PBXBuildFile; fileRef = BEFC1E1E0C07861A00B0BB3C /* clients.h */; }; - BEFC1E580C07861A00B0BB3C /* clients.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1F0C07861A00B0BB3C /* clients.c */; }; - C1033E071A3279B800EF44D8 /* crypto-utils-fallback.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E031A3279B800EF44D8 /* crypto-utils-fallback.c */; }; - C1033E081A3279B800EF44D8 /* crypto-utils-openssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E041A3279B800EF44D8 /* crypto-utils-openssl.c */; }; - C1033E091A3279B800EF44D8 /* crypto-utils.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E051A3279B800EF44D8 /* crypto-utils.c */; }; + BEFC1E580C07861A00B0BB3C /* clients.c in Sources */ = {isa = PBXBuildFile; fileRef = BEFC1E1F0C07861A00B0BB3C /* clients.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C1033E071A3279B800EF44D8 /* crypto-utils-fallback.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E031A3279B800EF44D8 /* crypto-utils-fallback.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C1033E081A3279B800EF44D8 /* crypto-utils-openssl.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E041A3279B800EF44D8 /* crypto-utils-openssl.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C1033E091A3279B800EF44D8 /* crypto-utils.c in Sources */ = {isa = PBXBuildFile; fileRef = C1033E051A3279B800EF44D8 /* crypto-utils.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C1033E0A1A3279B800EF44D8 /* crypto-utils.h in Headers */ = {isa = PBXBuildFile; fileRef = C1033E061A3279B800EF44D8 /* crypto-utils.h */; }; - C1077A4E183EB29600634C22 /* error.c in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4A183EB29600634C22 /* error.c */; }; + C1077A4E183EB29600634C22 /* error.c in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4A183EB29600634C22 /* error.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C1077A4F183EB29600634C22 /* error.h in Headers */ = {isa = PBXBuildFile; fileRef = C1077A4B183EB29600634C22 /* error.h */; }; - C1077A50183EB29600634C22 /* file-posix.c in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4C183EB29600634C22 /* file-posix.c */; }; + C1077A50183EB29600634C22 /* file-posix.c in Sources */ = {isa = PBXBuildFile; fileRef = C1077A4C183EB29600634C22 /* file-posix.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C1077A51183EB29600634C22 /* file.h in Headers */ = {isa = PBXBuildFile; fileRef = C1077A4D183EB29600634C22 /* file.h */; }; - C10C644D1D9AF328003C1B4C /* session-id.c in Sources */ = {isa = PBXBuildFile; fileRef = C10C644B1D9AF328003C1B4C /* session-id.c */; }; + C10C644D1D9AF328003C1B4C /* session-id.c in Sources */ = {isa = PBXBuildFile; fileRef = C10C644B1D9AF328003C1B4C /* session-id.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C10C644E1D9AF328003C1B4C /* session-id.h in Headers */ = {isa = PBXBuildFile; fileRef = C10C644C1D9AF328003C1B4C /* session-id.h */; }; - C12F19791E1AE3C30005E93F /* upnperrors.c in Sources */ = {isa = PBXBuildFile; fileRef = C12F19771E1AE3C30005E93F /* upnperrors.c */; }; + C12F19791E1AE3C30005E93F /* upnperrors.c in Sources */ = {isa = PBXBuildFile; fileRef = C12F19771E1AE3C30005E93F /* upnperrors.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C12F197B1E1AE4460005E93F /* upnperrors.h in Headers */ = {isa = PBXBuildFile; fileRef = C12F197A1E1AE4460005E93F /* upnperrors.h */; }; - C1305EBE186A13B100F03351 /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = C1305EB8186A134000F03351 /* file.c */; }; - C1425B351EE9C5F5001DB85F /* tr-assert.c in Sources */ = {isa = PBXBuildFile; fileRef = C1425B321EE9C5EA001DB85F /* tr-assert.c */; }; + C1305EBE186A13B100F03351 /* file.c in Sources */ = {isa = PBXBuildFile; fileRef = C1305EB8186A134000F03351 /* file.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C1425B351EE9C5F5001DB85F /* tr-assert.c in Sources */ = {isa = PBXBuildFile; fileRef = C1425B321EE9C5EA001DB85F /* tr-assert.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C1425B361EE9C605001DB85F /* tr-assert.h in Headers */ = {isa = PBXBuildFile; fileRef = C1425B331EE9C5EA001DB85F /* tr-assert.h */; }; C1425B371EE9C705001DB85F /* tr-macros.h in Headers */ = {isa = PBXBuildFile; fileRef = C1425B341EE9C5EA001DB85F /* tr-macros.h */; }; C1425B381EE9C805001DB85F /* peer-socket.h in Headers */ = {isa = PBXBuildFile; fileRef = C1425B351EE9C5EA001DB85F /* peer-socket.h */; }; C1639A741A55F4E000E42033 /* libb64.a in Frameworks */ = {isa = PBXBuildFile; fileRef = C1639A6F1A55F4D600E42033 /* libb64.a */; }; - C1639A781A55F56600E42033 /* cdecode.c in Sources */ = {isa = PBXBuildFile; fileRef = C1639A761A55F56600E42033 /* cdecode.c */; }; - C1639A791A55F56600E42033 /* cencode.c in Sources */ = {isa = PBXBuildFile; fileRef = C1639A771A55F56600E42033 /* cencode.c */; }; + C1639A781A55F56600E42033 /* cdecode.c in Sources */ = {isa = PBXBuildFile; fileRef = C1639A761A55F56600E42033 /* cdecode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C1639A791A55F56600E42033 /* cencode.c in Sources */ = {isa = PBXBuildFile; fileRef = C1639A771A55F56600E42033 /* cencode.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C1639A7C1A55F57200E42033 /* cdecode.h in Headers */ = {isa = PBXBuildFile; fileRef = C1639A7A1A55F57200E42033 /* cdecode.h */; }; C1639A7D1A55F57200E42033 /* cencode.h in Headers */ = {isa = PBXBuildFile; fileRef = C1639A7B1A55F57200E42033 /* cencode.h */; }; - C1BF7BA81F2A3CB7008E88A7 /* upnpdev.c in Sources */ = {isa = PBXBuildFile; fileRef = C1BF7BA71F2A3CB7008E88A7 /* upnpdev.c */; }; + C1BF7BA81F2A3CB7008E88A7 /* upnpdev.c in Sources */ = {isa = PBXBuildFile; fileRef = C1BF7BA71F2A3CB7008E88A7 /* upnpdev.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C1BF7BAA1F2A3CCE008E88A7 /* upnpdev.h in Headers */ = {isa = PBXBuildFile; fileRef = C1BF7BA91F2A3CCE008E88A7 /* upnpdev.h */; }; C1F690FD1AD0627500D95CF0 /* daemon-posix.c in Sources */ = {isa = PBXBuildFile; fileRef = C1F690FC1AD0627500D95CF0 /* daemon-posix.c */; }; C1FEE5771C3223CC00D62832 /* watchdir-common.h in Headers */ = {isa = PBXBuildFile; fileRef = C1FEE5721C3223CC00D62832 /* watchdir-common.h */; }; - C1FEE5781C3223CC00D62832 /* watchdir-generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5731C3223CC00D62832 /* watchdir-generic.c */; }; - C1FEE5791C3223CC00D62832 /* watchdir-kqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5741C3223CC00D62832 /* watchdir-kqueue.c */; }; - C1FEE57A1C3223CC00D62832 /* watchdir.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5751C3223CC00D62832 /* watchdir.c */; }; + C1FEE5781C3223CC00D62832 /* watchdir-generic.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5731C3223CC00D62832 /* watchdir-generic.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C1FEE5791C3223CC00D62832 /* watchdir-kqueue.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5741C3223CC00D62832 /* watchdir-kqueue.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; + C1FEE57A1C3223CC00D62832 /* watchdir.c in Sources */ = {isa = PBXBuildFile; fileRef = C1FEE5751C3223CC00D62832 /* watchdir.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; C1FEE57B1C3223CC00D62832 /* watchdir.h in Headers */ = {isa = PBXBuildFile; fileRef = C1FEE5761C3223CC00D62832 /* watchdir.h */; }; - D4AF3B2F0C41F7A500D46B6B /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = D4AF3B2D0C41F7A500D46B6B /* list.c */; }; + D4AF3B2F0C41F7A500D46B6B /* list.c in Sources */ = {isa = PBXBuildFile; fileRef = D4AF3B2D0C41F7A500D46B6B /* list.c */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; D4AF3B300C41F7A600D46B6B /* list.h in Headers */ = {isa = PBXBuildFile; fileRef = D4AF3B2E0C41F7A500D46B6B /* list.h */; }; E138A9780C04D88F00C5426C /* ProgressGradients.m in Sources */ = {isa = PBXBuildFile; fileRef = E138A9760C04D88F00C5426C /* ProgressGradients.m */; }; F63480631E1D7274005B9E09 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = F63480621E1D7274005B9E09 /* Images.xcassets */; }; @@ -2894,6 +2894,7 @@ 0053D3D30C86774200545606 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; OTHER_CFLAGS = "-DHAVE_CONFIG_H"; PRODUCT_NAME = event; USER_HEADER_SEARCH_PATHS = "third-party/libevent/compat third-party/libevent/include"; @@ -2903,6 +2904,7 @@ 0053D3D40C86774200545606 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; HEADER_SEARCH_PATHS = ( "$(inherited)", "third-party/dht", @@ -2937,6 +2939,7 @@ 0053D3D50C86774200545606 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = macosx; GCC_PREFIX_HEADER = macosx/Transmission_Prefix.pch; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; @@ -3048,6 +3051,7 @@ 3C7A118E0D0B2EB800B5701F /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; OTHER_CFLAGS = "-DENABLE_STRNATPMPERR"; PRODUCT_NAME = natpmp; }; @@ -3056,6 +3060,7 @@ 3C7A118F0D0B2EB800B5701F /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; OTHER_CFLAGS = "-DENABLE_STRNATPMPERR"; PRODUCT_NAME = natpmp; }; @@ -3064,6 +3069,7 @@ 3C7A11900D0B2EB800B5701F /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; OTHER_CFLAGS = "-DENABLE_STRNATPMPERR"; PRODUCT_NAME = natpmp; }; @@ -3072,6 +3078,7 @@ 4D18389C09DEC01E0047D688 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; HEADER_SEARCH_PATHS = ( "$(inherited)", "third-party/dht", @@ -3117,6 +3124,7 @@ 4DF0C599089918A300DD8943 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = macosx; GCC_PREFIX_HEADER = macosx/Transmission_Prefix.pch; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; @@ -3187,6 +3195,7 @@ A22CFCBB0FC24F720009BD3E /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = dht; }; name = Debug; @@ -3194,6 +3203,7 @@ A22CFCBC0FC24F720009BD3E /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = dht; }; name = "Release - Debug"; @@ -3201,6 +3211,7 @@ A22CFCBD0FC24F720009BD3E /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = dht; }; name = Release; @@ -3265,6 +3276,7 @@ A250CFEC0CDA19680068B4B6 /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; FRAMEWORK_SEARCH_PATHS = macosx; GCC_PREFIX_HEADER = macosx/Transmission_Prefix.pch; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; @@ -3291,6 +3303,7 @@ A250CFEE0CDA19680068B4B6 /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; HEADER_SEARCH_PATHS = ( "$(inherited)", "third-party/dht", @@ -3353,6 +3366,7 @@ A250CFF20CDA19680068B4B6 /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; OTHER_CFLAGS = "-DHAVE_CONFIG_H"; PRODUCT_NAME = event; USER_HEADER_SEARCH_PATHS = "third-party/libevent/compat third-party/libevent/include"; @@ -3362,6 +3376,7 @@ A2E384CF130DFB1D001F501B /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_PREPROCESSOR_DEFINITIONS = POSIX; PRODUCT_NAME = utp; }; @@ -3370,6 +3385,7 @@ A2E384D0130DFB1D001F501B /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_PREPROCESSOR_DEFINITIONS = POSIX; PRODUCT_NAME = utp; }; @@ -3378,6 +3394,7 @@ A2E384D1130DFB1D001F501B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_PREPROCESSOR_DEFINITIONS = ( POSIX, NS_BLOCK_ASSERTIONS, @@ -3389,6 +3406,7 @@ A2F35BD115C5A0A100EBF632 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_PREFIX_HEADER = "$(SRCROOT)/macosx/QuickLookPlugin/QuickLookPlugin-Prefix.pch"; INFOPLIST_FILE = "$(SRCROOT)/macosx/QuickLookPlugin/QuickLookPlugin-Info.plist"; INSTALL_PATH = /Library/QuickLook; @@ -3404,6 +3422,7 @@ A2F35BD215C5A0A100EBF632 /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_PREFIX_HEADER = "$(SRCROOT)/macosx/QuickLookPlugin/QuickLookPlugin-Prefix.pch"; INFOPLIST_FILE = "$(SRCROOT)/macosx/QuickLookPlugin/QuickLookPlugin-Info.plist"; INSTALL_PATH = /Library/QuickLook; @@ -3419,6 +3438,7 @@ A2F35BD315C5A0A100EBF632 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_PREFIX_HEADER = "$(SRCROOT)/macosx/QuickLookPlugin/QuickLookPlugin-Prefix.pch"; INFOPLIST_FILE = "$(SRCROOT)/macosx/QuickLookPlugin/QuickLookPlugin-Info.plist"; INSTALL_PATH = /Library/QuickLook; @@ -3434,6 +3454,7 @@ BE1183490CE160960002D0F3 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = miniupnp; }; name = Release; @@ -3441,6 +3462,7 @@ BE11834A0CE160960002D0F3 /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = miniupnp; }; name = "Release - Debug"; @@ -3448,6 +3470,7 @@ BE11834B0CE160960002D0F3 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = miniupnp; }; name = Debug; @@ -3455,6 +3478,7 @@ BE75C34B0C729EB600DBEFE0 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; OTHER_CFLAGS = "-DHAVE_CONFIG_H"; PRODUCT_NAME = event; USER_HEADER_SEARCH_PATHS = "third-party/libevent/compat third-party/libevent/include"; @@ -3492,6 +3516,7 @@ C1639A701A55F4D600E42033 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -3499,6 +3524,7 @@ C1639A711A55F4D600E42033 /* Release - Debug */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = "Release - Debug"; @@ -3506,6 +3532,7 @@ C1639A721A55F4D600E42033 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; diff --git a/macosx/AboutWindowController.m b/macosx/AboutWindowController.m index bc0a6cd95..e2787ac59 100644 --- a/macosx/AboutWindowController.m +++ b/macosx/AboutWindowController.m @@ -41,8 +41,8 @@ AboutWindowController * fAboutBoxInstance = nil; [fCopyrightField setStringValue: [[NSBundle mainBundle] localizedStringForKey: @"NSHumanReadableCopyright" value: nil table: @"InfoPlist"]]; - [[fTextView textStorage] setAttributedString: [[[NSAttributedString alloc] initWithPath: - [[NSBundle mainBundle] pathForResource: @"Credits" ofType: @"rtf"] documentAttributes: nil] autorelease]]; + [[fTextView textStorage] setAttributedString: [[NSAttributedString alloc] initWithPath: + [[NSBundle mainBundle] pathForResource: @"Credits" ofType: @"rtf"] documentAttributes: nil]]; //size license button const CGFloat oldButtonWidth = NSWidth([fLicenseButton frame]); @@ -63,7 +63,6 @@ AboutWindowController * fAboutBoxInstance = nil; - (void) windowWillClose: (id) sender { - [fAboutBoxInstance autorelease]; fAboutBoxInstance = nil; } diff --git a/macosx/AddMagnetWindowController.m b/macosx/AddMagnetWindowController.m index 345c09c43..3c49efdec 100644 --- a/macosx/AddMagnetWindowController.m +++ b/macosx/AddMagnetWindowController.m @@ -51,7 +51,7 @@ if ((self = [super initWithWindowNibName: @"AddMagnetWindow"])) { fTorrent = torrent; - fDestination = [[path stringByExpandingTildeInPath] retain]; + fDestination = [path stringByExpandingTildeInPath]; fController = controller; @@ -165,9 +165,7 @@ { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [fDestination release]; - [super dealloc]; } - (Torrent *) torrent @@ -271,7 +269,7 @@ [fTorrent startTransfer]; [self close]; - [fController askOpenMagnetConfirmed: self add: YES]; //ensure last, since it releases this controller + [fController askOpenMagnetConfirmed: self add: YES]; } - (void) setDestinationPath: (NSString *) destination determinationType: (TorrentDeterminationType) determinationType @@ -279,8 +277,7 @@ destination = [destination stringByExpandingTildeInPath]; if (!fDestination || ![fDestination isEqualToString: destination]) { - [fDestination release]; - fDestination = [destination retain]; + fDestination = destination; [fTorrent changeDownloadFolderBeforeUsing: fDestination determinationType: determinationType]; } @@ -290,7 +287,6 @@ ExpandedPathToIconTransformer * iconTransformer = [[ExpandedPathToIconTransformer alloc] init]; [fLocationImageView setImage: [iconTransformer transformedValue: fDestination]]; - [iconTransformer release]; } - (void) setGroupsMenu @@ -317,7 +313,6 @@ if ([[alert suppressionButton] state] == NSOnState) [[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningFolderDataSameName"]; - [alert release]; if (returnCode == NSAlertSecondButtonReturn) [self performSelectorOnMainThread: @selector(confirmAdd) withObject: nil waitUntilDone: NO]; diff --git a/macosx/AddWindowController.m b/macosx/AddWindowController.m index bdc3d656b..e0d0eb97f 100644 --- a/macosx/AddWindowController.m +++ b/macosx/AddWindowController.m @@ -58,12 +58,12 @@ if ((self = [super initWithWindowNibName: @"AddWindow"])) { fTorrent = torrent; - fDestination = [[path stringByExpandingTildeInPath] retain]; + fDestination = [path stringByExpandingTildeInPath]; fLockDestination = lockDestination; fController = controller; - fTorrentFile = [[torrentFile stringByExpandingTildeInPath] retain]; + fTorrentFile = [torrentFile stringByExpandingTildeInPath]; fDeleteTorrentEnableInitially = deleteTorrent; fCanToggleDelete = canToggleDelete; @@ -134,8 +134,8 @@ [fLocationImageView setImage: nil]; } - fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self - selector: @selector(updateFiles) userInfo: nil repeats: YES] retain]; + fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self + selector: @selector(updateFiles) userInfo: nil repeats: YES]; [self updateFiles]; } @@ -151,12 +151,8 @@ [[NSNotificationCenter defaultCenter] removeObserver: self]; [fTimer invalidate]; - [fTimer release]; - [fDestination release]; - [fTorrentFile release]; - [super dealloc]; } - (Torrent *) torrent @@ -222,7 +218,6 @@ - (BOOL) windowShouldClose: (id) window { [fTimer invalidate]; - [fTimer release]; fTimer = nil; [fFileController setTorrent: nil]; //avoid a crash when window tries to update @@ -337,7 +332,6 @@ - (void) confirmAdd { [fTimer invalidate]; - [fTimer release]; fTimer = nil; [fTorrent setGroupValue: fGroupValue determinationType: fGroupValueDetermination]; @@ -350,7 +344,7 @@ [fFileController setTorrent: nil]; //avoid a crash when window tries to update [self close]; - [fController askOpenConfirmed: self add: YES]; //ensure last, since it releases this controller + [fController askOpenConfirmed: self add: YES]; } - (void) setDestinationPath: (NSString *) destination determinationType: (TorrentDeterminationType) determinationType @@ -358,8 +352,7 @@ destination = [destination stringByExpandingTildeInPath]; if (!fDestination || ![fDestination isEqualToString: destination]) { - [fDestination release]; - fDestination = [destination retain]; + fDestination = destination; [fTorrent changeDownloadFolderBeforeUsing: fDestination determinationType: determinationType]; } @@ -369,7 +362,6 @@ ExpandedPathToIconTransformer * iconTransformer = [[ExpandedPathToIconTransformer alloc] init]; [fLocationImageView setImage: [iconTransformer transformedValue: fDestination]]; - [iconTransformer release]; } - (void) setGroupsMenu @@ -399,7 +391,6 @@ if ([[alert suppressionButton] state] == NSOnState) [[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningFolderDataSameName"]; - [alert release]; if (returnCode == NSAlertSecondButtonReturn) [self performSelectorOnMainThread: @selector(confirmAdd) withObject: nil waitUntilDone: NO]; diff --git a/macosx/BadgeView.m b/macosx/BadgeView.m index 1dc49242f..73a952d1f 100644 --- a/macosx/BadgeView.m +++ b/macosx/BadgeView.m @@ -46,11 +46,6 @@ return self; } -- (void) dealloc -{ - [fAttributes release]; - [super dealloc]; -} - (BOOL) setRatesWithDownload: (CGFloat) downloadRate upload: (CGFloat) uploadRate { @@ -111,7 +106,6 @@ fAttributes[NSForegroundColorAttributeName] = [NSColor whiteColor]; fAttributes[NSShadowAttributeName] = stringShadow; - [stringShadow release]; } NSRect badgeRect; diff --git a/macosx/Badger.m b/macosx/Badger.m index 06784b127..520e662d2 100644 --- a/macosx/Badger.m +++ b/macosx/Badger.m @@ -35,7 +35,6 @@ BadgeView * view = [[BadgeView alloc] initWithLib: lib]; [[NSApp dockTile] setContentView: view]; - [view release]; fHashes = [[NSMutableSet alloc] init]; } @@ -43,11 +42,6 @@ return self; } -- (void) dealloc -{ - [fHashes release]; - [super dealloc]; -} - (void) updateBadgeWithDownload: (CGFloat) downloadRate upload: (CGFloat) uploadRate { diff --git a/macosx/BlocklistDownloader.m b/macosx/BlocklistDownloader.m index 896406ed5..683e4dfbe 100644 --- a/macosx/BlocklistDownloader.m +++ b/macosx/BlocklistDownloader.m @@ -71,12 +71,6 @@ BlocklistDownloader * fBLDownloader = nil; } } -- (void) dealloc -{ - [fDownload release]; - [fDestination release]; - [super dealloc]; -} - (void) cancelDownload { @@ -87,7 +81,6 @@ BlocklistDownloader * fBLDownloader = nil; [[BlocklistScheduler scheduler] updateSchedule]; fBLDownloader = nil; - [self release]; } //using the actual filename is the best bet @@ -98,8 +91,7 @@ BlocklistDownloader * fBLDownloader = nil; - (void) download: (NSURLDownload *) download didCreateDestination: (NSString *) path { - [fDestination release]; - fDestination = [path retain]; + fDestination = path; } - (void) download: (NSURLDownload *) download didReceiveResponse: (NSURLResponse *) response @@ -126,7 +118,6 @@ BlocklistDownloader * fBLDownloader = nil; [[BlocklistScheduler scheduler] updateSchedule]; fBLDownloader = nil; - [self release]; } - (void) downloadDidFinish: (NSURLDownload *) download @@ -161,7 +152,6 @@ BlocklistDownloader * fBLDownloader = nil; [[NSNotificationCenter defaultCenter] postNotificationName: @"BlocklistUpdated" object: nil]; fBLDownloader = nil; - [self release]; }); }); } @@ -223,7 +213,6 @@ BlocklistDownloader * fBLDownloader = nil; { success = NO; } - [unzip release]; if (success) { //Now find out what file we actually extracted; don't just assume it matches the zipfile's name @@ -244,19 +233,17 @@ BlocklistDownloader * fBLDownloader = nil; [zipinfo launch]; [zipinfo waitUntilExit]; - NSString * actualFilename = [[[NSString alloc] initWithData: [zipinfoOutput readDataToEndOfFile] - encoding: NSUTF8StringEncoding] autorelease]; + NSString * actualFilename = [[NSString alloc] initWithData: [zipinfoOutput readDataToEndOfFile] + encoding: NSUTF8StringEncoding]; actualFilename = [actualFilename stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; NSString * newBlocklistPath = [workingDirectory stringByAppendingPathComponent: actualFilename]; //Finally, delete the ZIP file; we're done with it, and we'll return the unzipped blocklist [[NSFileManager defaultManager] removeItemAtPath: fDestination error: NULL]; - [fDestination release]; - fDestination = [newBlocklistPath retain]; + fDestination = newBlocklistPath; } @catch(id exc) {} - [zipinfo release]; } } } diff --git a/macosx/BlocklistDownloaderViewController.m b/macosx/BlocklistDownloaderViewController.m index b63ae3bbd..8e07e2623 100644 --- a/macosx/BlocklistDownloaderViewController.m +++ b/macosx/BlocklistDownloaderViewController.m @@ -104,7 +104,6 @@ BlocklistDownloaderViewController * fBLViewController = nil; [fStatusWindow orderOut: self]; fBLViewController = nil; - [self release]; } - (void) setFailed: (NSString *) error @@ -112,7 +111,7 @@ BlocklistDownloaderViewController * fBLViewController = nil; [NSApp endSheet: fStatusWindow]; [fStatusWindow orderOut: self]; - NSAlert * alert = [[[NSAlert alloc] init] autorelease]; + NSAlert * alert = [[NSAlert alloc] init]; [alert addButtonWithTitle: NSLocalizedString(@"OK", "Blocklist -> button")]; [alert setMessageText: NSLocalizedString(@"Download of the blocklist failed.", "Blocklist -> message")]; [alert setAlertStyle: NSWarningAlertStyle]; @@ -153,7 +152,6 @@ BlocklistDownloaderViewController * fBLViewController = nil; [[alert window] orderOut: self]; fBLViewController = nil; - [self release]; } @end diff --git a/macosx/BlocklistScheduler.m b/macosx/BlocklistScheduler.m index 3216e3038..9ada52e8d 100644 --- a/macosx/BlocklistScheduler.m +++ b/macosx/BlocklistScheduler.m @@ -79,7 +79,6 @@ BlocklistScheduler * fScheduler = nil; - (void) cancelSchedule { [fTimer invalidate]; - [fTimer release]; fTimer = nil; } @@ -89,7 +88,6 @@ BlocklistScheduler * fScheduler = nil; - (void) runUpdater { - [fTimer release]; fTimer = nil; [BlocklistDownloader downloader]; } diff --git a/macosx/BonjourController.m b/macosx/BonjourController.m index 6355a75a7..e1c8810f6 100644 --- a/macosx/BonjourController.m +++ b/macosx/BonjourController.m @@ -42,11 +42,6 @@ BonjourController * fDefaultController = nil; return fDefaultController != nil; } -- (void) dealloc -{ - [fService release]; - [super dealloc]; -} - (void) startWithPort: (int) port { @@ -65,7 +60,6 @@ BonjourController * fDefaultController = nil; - (void) stop { [fService stop]; - [fService release]; fService = nil; } diff --git a/macosx/ButtonToolbarItem.m b/macosx/ButtonToolbarItem.m index 2a3f5377b..ba4c42316 100644 --- a/macosx/ButtonToolbarItem.m +++ b/macosx/ButtonToolbarItem.m @@ -35,7 +35,7 @@ [menuItem setTarget: [self target]]; [menuItem setEnabled: [[self target] validateToolbarItem: self]]; - return [menuItem autorelease]; + return menuItem; } @end diff --git a/macosx/Controller.h b/macosx/Controller.h index cb651cc98..8bc42f38d 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -174,7 +174,7 @@ typedef enum - (NSArray *)selectedTorrents; -@property (retain, readonly) PrefsController * prefsController; +@property (nonatomic, readonly) PrefsController * prefsController; - (void) showPreferenceWindow: (id) sender; - (void) showAboutWindow: (id) sender; @@ -183,7 +183,7 @@ typedef enum - (void) resetInfo; - (void) setInfoTab: (id) sender; -@property (retain, readonly) MessageWindowController * messageWindowController; +@property (nonatomic, readonly) MessageWindowController * messageWindowController; - (void) showMessageWindow: (id) sender; - (void) showStatsWindow: (id) sender; @@ -226,7 +226,7 @@ typedef enum - (void) sleepCallback: (natural_t) messageType argument: (void *) messageArgument; -@property (retain, readonly) VDKQueue * fileWatcherQueue; +@property (nonatomic, readonly) VDKQueue * fileWatcherQueue; - (void) torrentTableViewSelectionDidChange: (NSNotification *) notification; diff --git a/macosx/Controller.m b/macosx/Controller.m index 9ea8787c7..8a0598c36 100644 --- a/macosx/Controller.m +++ b/macosx/Controller.m @@ -141,20 +141,20 @@ typedef enum static void altSpeedToggledCallback(tr_session * handle UNUSED, bool active, bool byUser, void * controller) { NSDictionary * dict = [[NSDictionary alloc] initWithObjects: @[@(active), @(byUser)] forKeys: @[@"Active", @"ByUser"]]; - [(Controller *)controller performSelectorOnMainThread: @selector(altSpeedToggledCallbackIsLimited:) + [(__bridge Controller *)controller performSelectorOnMainThread: @selector(altSpeedToggledCallbackIsLimited:) withObject: dict waitUntilDone: NO]; } static tr_rpc_callback_status rpcCallback(tr_session * handle UNUSED, tr_rpc_callback_type type, struct tr_torrent * torrentStruct, void * controller) { - [(Controller *)controller rpcCallback: type forTorrentStruct: torrentStruct]; + [(__bridge Controller *)controller rpcCallback: type forTorrentStruct: torrentStruct]; return TR_RPC_NOREMOVE; //we'll do the remove manually } static void sleepCallback(void * controller, io_service_t y, natural_t messageType, void * messageArgument) { - [(Controller *)controller sleepCallback: messageType argument: messageArgument]; + [(__bridge Controller *)controller sleepCallback: messageType argument: messageArgument]; } // 2.90 was infected with ransomware which we now check for and attempt to remove @@ -202,7 +202,7 @@ static void removeKeRangerRansomware() [lsofTask launch]; NSData * lsofOuputData = [[[lsofTask standardOutput] fileHandleForReading] readDataToEndOfFile]; [lsofTask waitUntilExit]; - NSString * lsofOutput = [[[NSString alloc] initWithData: lsofOuputData encoding: NSUTF8StringEncoding] autorelease]; + NSString * lsofOutput = [[NSString alloc] initWithData: lsofOuputData encoding: NSUTF8StringEncoding]; for (NSString * line in [lsofOutput componentsSeparatedByString: @"\n"]) { if (![line hasPrefix: @"p"]) @@ -257,7 +257,6 @@ static void removeKeRangerRansomware() [alert setAlertStyle: NSCriticalAlertStyle]; [alert runModal]; - [alert release]; //kill ourselves right away exit(0); @@ -267,10 +266,10 @@ static void removeKeRangerRansomware() [[NSBundle mainBundle] pathForResource: @"Defaults" ofType: @"plist"]]]; //set custom value transformers - ExpandedPathToPathTransformer * pathTransformer = [[[ExpandedPathToPathTransformer alloc] init] autorelease]; + ExpandedPathToPathTransformer * pathTransformer = [[ExpandedPathToPathTransformer alloc] init]; [NSValueTransformer setValueTransformer: pathTransformer forName: @"ExpandedPathToPathTransformer"]; - ExpandedPathToIconTransformer * iconTransformer = [[[ExpandedPathToIconTransformer alloc] init] autorelease]; + ExpandedPathToIconTransformer * iconTransformer = [[ExpandedPathToIconTransformer alloc] init]; [NSValueTransformer setValueTransformer: iconTransformer forName: @"ExpandedPathToIconTransformer"]; //cover our asses @@ -288,7 +287,6 @@ static void removeKeRangerRansomware() if ([alert runModal] == NSAlertSecondButtonReturn) exit(0); - [alert release]; [[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningLegal"]; } @@ -407,8 +405,6 @@ static void removeKeRangerRansomware() [unitFormatter setAllowedUnits: NSByteCountFormatterUseTB]; NSString * tbString = [unitFormatter stringFromByteCount: 17]; - [unitFormatter release]; - tr_formatter_size_init(1000, [kbString UTF8String], [mbString UTF8String], [gbString UTF8String], @@ -451,11 +447,11 @@ static void removeKeRangerRansomware() fGlobalPopoverShown = NO; fSoundPlaying = NO; - tr_sessionSetAltSpeedFunc(fLib, altSpeedToggledCallback, self); + tr_sessionSetAltSpeedFunc(fLib, altSpeedToggledCallback, (__bridge void *)(self)); if (usesSpeedLimitSched) [fDefaults setBool: tr_sessionUsesAltSpeed(fLib) forKey: @"SpeedLimit"]; - tr_sessionSetRPCCallback(fLib, rpcCallback, self); + tr_sessionSetRPCCallback(fLib, rpcCallback, (__bridge void *)(self)); [GrowlApplicationBridge setGrowlDelegate: self]; @@ -475,7 +471,6 @@ static void removeKeRangerRansomware() [toolbar setAutosavesConfiguration: YES]; [toolbar setDisplayMode: NSToolbarDisplayModeIconOnly]; [fWindow setToolbar: toolbar]; - [toolbar release]; [fWindow setDelegate: self]; //do manually to avoid placement issue @@ -545,7 +540,7 @@ static void removeKeRangerRansomware() //register for sleep notifications IONotificationPortRef notify; io_object_t iterator; - if ((fRootPort = IORegisterForSystemPower(self, & notify, sleepCallback, &iterator))) + if ((fRootPort = IORegisterForSystemPower((__bridge void *)(self), & notify, sleepCallback, &iterator))) CFRunLoopAddSource(CFRunLoopGetCurrent(), IONotificationPortGetRunLoopSource(notify), kCFRunLoopCommonModes); else NSLog(@"Could not IORegisterForSystemPower"); @@ -574,8 +569,6 @@ static void removeKeRangerRansomware() NSNumber * waitToStart; if (!fPauseOnLaunch && (waitToStart = historyItem[@"WaitToStart"]) && [waitToStart boolValue]) [waitToStartTorrents addObject: torrent]; - - [torrent release]; } } @@ -642,8 +635,8 @@ static void removeKeRangerRansomware() //timer to update the interface every second [self updateUI]; - fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_UI_SECONDS target: self - selector: @selector(updateUI) userInfo: nil repeats: YES] retain]; + fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_UI_SECONDS target: self + selector: @selector(updateUI) userInfo: nil repeats: YES]; [[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSModalPanelRunLoopMode]; [[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSEventTrackingRunLoopMode]; @@ -716,8 +709,6 @@ static void removeKeRangerRansomware() if (allowNeverAgain) [fDefaults setBool: ([[alert suppressionButton] state] != NSOnState) forKey: @"WarningDonate"]; - - [alert release]; } } } @@ -784,13 +775,11 @@ static void removeKeRangerRansomware() [[NSNotificationCenter defaultCenter] removeObserver: self]; [fTimer invalidate]; - [fTimer release]; if (fAutoImportTimer) { if ([fAutoImportTimer isValid]) [fAutoImportTimer invalidate]; - [fAutoImportTimer release]; } [fBadger setQuitting]; @@ -802,9 +791,7 @@ static void removeKeRangerRansomware() { NSURLDownload * download = downloadDict[@"Download"]; [download cancel]; - [download release]; } - [fPendingTorrentDownloads release]; } //remember window states and close all windows @@ -823,31 +810,6 @@ static void removeKeRangerRansomware() [self updateTorrentHistory]; [fTableView saveCollapsedGroups]; - //remaining calls the same as dealloc - [fInfoController release]; - [fMessageController release]; - [fPrefsController release]; - - [fStatusBar release]; - [fFilterBar release]; - - [fTorrents release]; - [fDisplayedTorrents release]; - - [fAddWindows release]; - [fAddingTransfers release]; - - [fOverlayWindow release]; - [fBadger release]; - - [fAutoImportedNames release]; - - [fPreviewPanel release]; - - [fConfigDirectory release]; - - [fFileWatcherQueue release]; - //complete cleanup tr_sessionClose(fLib); } @@ -884,7 +846,6 @@ static void removeKeRangerRansomware() [fPendingTorrentDownloads removeObjectForKey: [[download request] URL]]; if ([fPendingTorrentDownloads count] == 0) { - [fPendingTorrentDownloads release]; fPendingTorrentDownloads = nil; } @@ -893,8 +854,6 @@ static void removeKeRangerRansomware() "Download not a torrent -> message"), suggestedName, [[[[download request] URL] absoluteString] stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding]], NSLocalizedString(@"OK", "Download not a torrent -> button"), nil, nil); - - [download release]; } else [download setDestination: [NSTemporaryDirectory() stringByAppendingPathComponent: [suggestedName lastPathComponent]] @@ -918,11 +877,8 @@ static void removeKeRangerRansomware() [fPendingTorrentDownloads removeObjectForKey: [[download request] URL]]; if ([fPendingTorrentDownloads count] == 0) { - [fPendingTorrentDownloads release]; fPendingTorrentDownloads = nil; } - - [download release]; } - (void) downloadDidFinish: (NSURLDownload *) download @@ -937,11 +893,8 @@ static void removeKeRangerRansomware() [fPendingTorrentDownloads removeObjectForKey: [[download request] URL]]; if ([fPendingTorrentDownloads count] == 0) { - [fPendingTorrentDownloads release]; fPendingTorrentDownloads = nil; } - - [download release]; } - (void) application: (NSApplication *) app openFiles: (NSArray *) filenames @@ -1039,7 +992,6 @@ static void removeKeRangerRansomware() if (!fAddWindows) fAddWindows = [[NSMutableSet alloc] init]; [fAddWindows addObject: addController]; - [addController release]; } else { @@ -1048,7 +1000,6 @@ static void removeKeRangerRansomware() [torrent update]; [fTorrents addObject: torrent]; - [torrent release]; if (!fAddingTransfers) fAddingTransfers = [[NSMutableSet alloc] init]; @@ -1069,7 +1020,6 @@ static void removeKeRangerRansomware() [torrent update]; [fTorrents addObject: torrent]; - [torrent release]; if (!fAddingTransfers) fAddingTransfers = [[NSMutableSet alloc] init]; @@ -1080,13 +1030,11 @@ static void removeKeRangerRansomware() else { [torrent closeRemoveTorrent: NO]; - [torrent release]; } [fAddWindows removeObject: addController]; if ([fAddWindows count] == 0) { - [fAddWindows release]; fAddWindows = nil; } } @@ -1130,7 +1078,6 @@ static void removeKeRangerRansomware() if (!fAddWindows) fAddWindows = [[NSMutableSet alloc] init]; [fAddWindows addObject: addController]; - [addController release]; } else { @@ -1139,7 +1086,6 @@ static void removeKeRangerRansomware() [torrent update]; [fTorrents addObject: torrent]; - [torrent release]; if (!fAddingTransfers) fAddingTransfers = [[NSMutableSet alloc] init]; @@ -1159,7 +1105,6 @@ static void removeKeRangerRansomware() [torrent update]; [fTorrents addObject: torrent]; - [torrent release]; if (!fAddingTransfers) fAddingTransfers = [[NSMutableSet alloc] init]; @@ -1170,13 +1115,11 @@ static void removeKeRangerRansomware() else { [torrent closeRemoveTorrent: NO]; - [torrent release]; } [fAddWindows removeObject: addController]; if ([fAddWindows count] == 0) { - [fAddWindows release]; fAddWindows = nil; } } @@ -1185,14 +1128,11 @@ static void removeKeRangerRansomware() { NSDictionary * dict = [notification userInfo]; [self openFiles: @[dict[@"File"]] addType: ADD_CREATED forcePath: dict[@"Path"]]; - [dict release]; } - (void) openFilesWithDict: (NSDictionary *) dictionary { [self openFiles: dictionary[@"Filenames"] addType: [dictionary[@"AddType"] intValue] forcePath: nil]; - - [dictionary release]; } //called on by applescript @@ -1245,7 +1185,6 @@ static void removeKeRangerRansomware() [alert runModal]; if ([[alert suppressionButton] state] == NSOnState) [fDefaults setBool: NO forKey: @"WarningInvalidOpen"]; - [alert release]; } - (void) invalidOpenMagnetAlert: (NSString *) address @@ -1263,7 +1202,6 @@ static void removeKeRangerRansomware() [alert runModal]; if ([[alert suppressionButton] state] == NSOnState) [fDefaults setBool: NO forKey: @"WarningInvalidOpen"]; - [alert release]; } - (void) duplicateOpenAlert: (NSString *) name @@ -1284,7 +1222,6 @@ static void removeKeRangerRansomware() [alert runModal]; if ([[alert suppressionButton] state]) [fDefaults setBool: NO forKey: @"WarningDuplicate"]; - [alert release]; } - (void) duplicateOpenMagnetAlert: (NSString *) address transferName: (NSString *) name @@ -1309,7 +1246,6 @@ static void removeKeRangerRansomware() [alert runModal]; if ([[alert suppressionButton] state]) [fDefaults setBool: NO forKey: @"WarningDuplicate"]; - [alert release]; } - (void) openURL: (NSString *) urlString @@ -1370,7 +1306,6 @@ static void removeKeRangerRansomware() [self performSelectorOnMainThread: @selector(openURL:) withObject: urlString waitUntilDone: NO]; } - [fUrlSheetController release]; fUrlSheetController = nil; } @@ -1513,7 +1448,7 @@ static void removeKeRangerRansomware() NSBeginAlertSheet(title, NSLocalizedString(@"Remove", "Removal confirm panel -> button"), NSLocalizedString(@"Cancel", "Removal confirm panel -> button"), nil, fWindow, self, - nil, @selector(removeSheetDidEnd:returnCode:contextInfo:), [dict retain], @"%@", message); + nil, @selector(removeSheetDidEnd:returnCode:contextInfo:), (__bridge void *)(dict), @"%@", message); return; } } @@ -1526,7 +1461,6 @@ static void removeKeRangerRansomware() NSArray * torrents = dict[@"Torrents"]; if (returnCode == NSAlertDefaultReturn) [self confirmRemoveTorrents: torrents deleteData: [dict[@"DeleteData"] boolValue]]; - [dict release]; } - (void) confirmRemoveTorrents: (NSArray *) torrents deleteData: (BOOL) deleteData @@ -1660,7 +1594,7 @@ static void removeKeRangerRansomware() "Remove completed confirm panel -> message"); } - NSAlert * alert = [[[NSAlert alloc] init] autorelease]; + NSAlert * alert = [[NSAlert alloc] init]; [alert setMessageText: message]; [alert setInformativeText: info]; [alert setAlertStyle: NSWarningAlertStyle]; @@ -1719,7 +1653,6 @@ static void removeKeRangerRansomware() { if ([torrents count] == 0) { - [torrents release]; return; } @@ -1756,7 +1689,6 @@ static void removeKeRangerRansomware() [alert setAlertStyle: NSWarningAlertStyle]; [alert runModal]; - [alert release]; } [torrents removeObjectAtIndex: 0]; @@ -2103,7 +2035,6 @@ static void removeKeRangerRansomware() [notification setUserInfo: userInfo]; [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification: notification]; - [notification release]; NSMutableDictionary * clickContext = [NSMutableDictionary dictionaryWithObjectsAndKeys: GROWL_DOWNLOAD_COMPLETE, @"Type", nil]; @@ -2162,7 +2093,6 @@ static void removeKeRangerRansomware() [userNotification setUserInfo: userInfo]; [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification: userNotification]; - [userNotification release]; NSMutableDictionary * clickContext = [NSMutableDictionary dictionaryWithObject: GROWL_SEEDING_COMPLETE forKey: @"Type"]; @@ -2611,7 +2541,7 @@ static void removeKeRangerRansomware() TorrentGroup * newGroup = groupsByIndex[@(groupValue)]; if (!newGroup) { - newGroup = [[[TorrentGroup alloc] initWithGroup: groupValue] autorelease]; + newGroup = [[TorrentGroup alloc] initWithGroup: groupValue]; groupsByIndex[@(groupValue)] = newGroup; [fDisplayedTorrents addObject: newGroup]; @@ -2652,7 +2582,7 @@ static void removeKeRangerRansomware() TorrentGroup * group = groupsByIndex[@(groupValue)]; if (!group) { - group = [[[TorrentGroup alloc] initWithGroup: groupValue] autorelease]; + group = [[TorrentGroup alloc] initWithGroup: groupValue]; groupsByIndex[@(groupValue)] = group; [fDisplayedTorrents addObject: group]; @@ -2707,7 +2637,7 @@ static void removeKeRangerRansomware() TorrentGroup * group = groupsByIndex[@(groupValue)]; if (!group) { - group = [[[TorrentGroup alloc] initWithGroup: groupValue] autorelease]; + group = [[TorrentGroup alloc] initWithGroup: groupValue]; groupsByIndex[@(groupValue)] = group; } @@ -2753,7 +2683,6 @@ static void removeKeRangerRansomware() if (fAddingTransfers) { - [fAddingTransfers release]; fAddingTransfers = nil; } } @@ -2775,9 +2704,6 @@ static void removeKeRangerRansomware() [popover setDelegate: self]; [popover showRelativeToRect: [sender frame] ofView: sender preferredEdge: NSMaxYEdge]; - - [viewController release]; - [popover release]; } //don't show multiple popovers when clicking the gear button repeatedly @@ -2803,10 +2729,9 @@ static void removeKeRangerRansomware() const NSInteger groupMenuCount = [groupMenu numberOfItems]; for (NSInteger i = 0; i < groupMenuCount; i++) { - NSMenuItem * item = [[groupMenu itemAtIndex: 0] retain]; + NSMenuItem * item = [groupMenu itemAtIndex: 0]; [groupMenu removeItemAtIndex: 0]; [menu addItem: item]; - [item release]; } } else if (menu == fShareMenu || menu == fShareContextMenu) { @@ -2846,7 +2771,6 @@ static void removeKeRangerRansomware() [fStatusBar updateSpeedFieldsToolTips]; } -//dict has been retained - (void) altSpeedToggledCallbackIsLimited: (NSDictionary *) dict { const BOOL isLimited = [dict[@"Active"] boolValue]; @@ -2864,7 +2788,6 @@ static void removeKeRangerRansomware() clickContext: nil identifier: GROWL_AUTO_SPEED_LIMIT]; - [dict release]; } - (void) sound: (NSSound *) sound didFinishPlaying: (BOOL) finishedPlaying @@ -2881,11 +2804,10 @@ static void removeKeRangerRansomware() if ([fAutoImportTimer isValid]) [fAutoImportTimer invalidate]; - [fAutoImportTimer release]; //check again in 10 seconds in case torrent file wasn't complete - fAutoImportTimer = [[NSTimer scheduledTimerWithTimeInterval: 10.0 target: self - selector: @selector(checkAutoImportDirectory) userInfo: nil repeats: NO] retain]; + fAutoImportTimer = [NSTimer scheduledTimerWithTimeInterval: 10.0 target: self + selector: @selector(checkAutoImportDirectory) userInfo: nil repeats: NO]; [self checkAutoImportDirectory]; } @@ -2894,10 +2816,8 @@ static void removeKeRangerRansomware() { if ([fAutoImportTimer isValid]) [fAutoImportTimer invalidate]; - [fAutoImportTimer release]; fAutoImportTimer = nil; - [fAutoImportedNames release]; fAutoImportedNames = nil; [self checkAutoImportDirectory]; @@ -2940,7 +2860,7 @@ static void removeKeRangerRansomware() switch (tr_torrentParse(ctor, NULL)) { - case TR_PARSE_OK: + case TR_PARSE_OK: { [self openFiles: @[fullFile] addType: ADD_AUTO forcePath: nil]; NSString * notificationTitle = NSLocalizedString(@"Torrent File Auto Added", "notification title"); @@ -2951,13 +2871,12 @@ static void removeKeRangerRansomware() [notification setHasActionButton: NO]; [[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification: notification]; - [notification release]; [GrowlApplicationBridge notifyWithTitle: notificationTitle description: file notificationName: GROWL_AUTO_ADD iconData: nil priority: 0 isSticky: NO clickContext: nil]; break; - + } case TR_PARSE_ERR: [fAutoImportedNames removeObject: file]; break; @@ -2968,8 +2887,6 @@ static void removeKeRangerRansomware() tr_ctorFree(ctor); } - - [newNames release]; } - (void) beginCreateFile: (NSNotification *) notification @@ -3496,7 +3413,6 @@ static void removeKeRangerRansomware() if (!show) { [[fStatusBar view] removeFromSuperviewWithoutNeedingDisplay]; - [fStatusBar release]; fStatusBar = nil; } @@ -3595,7 +3511,6 @@ static void removeKeRangerRansomware() if (!show) { [[fFilterBar view] removeFromSuperviewWithoutNeedingDisplay]; - [fFilterBar release]; fFilterBar = nil; } @@ -3624,14 +3539,13 @@ static void removeKeRangerRansomware() - (void) beginPreviewPanelControl: (QLPreviewPanel *) panel { - fPreviewPanel = [panel retain]; + fPreviewPanel = panel; [fPreviewPanel setDelegate: self]; [fPreviewPanel setDataSource: self]; } - (void) endPreviewPanelControl: (QLPreviewPanel *) panel { - [fPreviewPanel release]; fPreviewPanel = nil; } @@ -3733,13 +3647,12 @@ static void removeKeRangerRansomware() [button setStringValue: @""]; [item setView: button]; - [button release]; const NSSize buttonSize = NSMakeSize(36.0, 25.0); [item setMinSize: buttonSize]; [item setMaxSize: buttonSize]; - return [item autorelease]; + return item; } - (NSToolbarItem *) toolbar: (NSToolbar *) toolbar itemForItemIdentifier: (NSString *) ident willBeInsertedIntoToolbar: (BOOL) flag @@ -3819,7 +3732,7 @@ static void removeKeRangerRansomware() GroupToolbarItem * groupItem = [[GroupToolbarItem alloc] initWithItemIdentifier: ident]; NSSegmentedControl * segmentedControl = [[NSSegmentedControl alloc] initWithFrame: NSZeroRect]; - [segmentedControl setCell: [[[ToolbarSegmentedCell alloc] init] autorelease]]; + [segmentedControl setCell: [[ToolbarSegmentedCell alloc] init]]; [groupItem setView: segmentedControl]; NSSegmentedCell * segmentedCell = (NSSegmentedCell *)[segmentedControl cell]; @@ -3854,18 +3767,17 @@ static void removeKeRangerRansomware() [groupItem createMenu: @[NSLocalizedString(@"Pause All", "All toolbar item -> label"), NSLocalizedString(@"Resume All", "All toolbar item -> label")]]; - [segmentedControl release]; [groupItem setVisibilityPriority: NSToolbarItemVisibilityPriorityHigh]; - return [groupItem autorelease]; + return groupItem; } else if ([ident isEqualToString: TOOLBAR_PAUSE_RESUME_SELECTED]) { GroupToolbarItem * groupItem = [[GroupToolbarItem alloc] initWithItemIdentifier: ident]; NSSegmentedControl * segmentedControl = [[NSSegmentedControl alloc] initWithFrame: NSZeroRect]; - [segmentedControl setCell: [[[ToolbarSegmentedCell alloc] init] autorelease]]; + [segmentedControl setCell: [[ToolbarSegmentedCell alloc] init]]; [groupItem setView: segmentedControl]; NSSegmentedCell * segmentedCell = (NSSegmentedCell *)[segmentedControl cell]; @@ -3900,11 +3812,10 @@ static void removeKeRangerRansomware() [groupItem createMenu: @[NSLocalizedString(@"Pause Selected", "Selected toolbar item -> label"), NSLocalizedString(@"Resume Selected", "Selected toolbar item -> label")]]; - [segmentedControl release]; [groupItem setVisibilityPriority: NSToolbarItemVisibilityPriorityHigh]; - return [groupItem autorelease]; + return groupItem; } else if ([ident isEqualToString: TOOLBAR_FILTER]) { @@ -4491,7 +4402,7 @@ static void removeKeRangerRansomware() [menu addItem: [NSMenuItem separatorItem]]; [menu addItemWithTitle: NSLocalizedString(@"Speed Limit", "Dock item") action: @selector(toggleSpeedLimit:) keyEquivalent: @""]; - return [menu autorelease]; + return menu; } - (NSRect) windowWillUseStandardFrame: (NSWindow *) window defaultFrame: (NSRect) defaultFrame @@ -4731,7 +4642,6 @@ static void removeKeRangerRansomware() [torrent update]; [fTorrents addObject: torrent]; - [torrent release]; if (!fAddingTransfers) fAddingTransfers = [[NSMutableSet alloc] init]; diff --git a/macosx/CreatorWindowController.m b/macosx/CreatorWindowController.m index 962f75b4d..29d64d382 100644 --- a/macosx/CreatorWindowController.m +++ b/macosx/CreatorWindowController.m @@ -43,6 +43,7 @@ @end +NSMutableSet *creatorWindowControllerSet = nil; @implementation CreatorWindowController + (CreatorWindowController *) createTorrentFile: (tr_session *) handle @@ -68,9 +69,13 @@ { if ((self = [super initWithWindowNibName: @"Creator"])) { + if (!creatorWindowControllerSet) { + creatorWindowControllerSet = [NSMutableSet set]; + } + fStarted = NO; - fPath = [path retain]; + fPath = path; fInfo = tr_metaInfoBuilderCreate([[fPath path] UTF8String]); if (fInfo->fileCount == 0) @@ -84,9 +89,7 @@ [alert setAlertStyle: NSWarningAlertStyle]; [alert runModal]; - [alert release]; - [self release]; return nil; } if (fInfo->totalSize == 0) @@ -100,9 +103,7 @@ [alert setAlertStyle: NSWarningAlertStyle]; [alert runModal]; - [alert release]; - [self release]; return nil; } @@ -132,6 +133,8 @@ if (!tr_urlIsValidTracker([fTrackers[i] UTF8String])) [fTrackers removeObjectAtIndex: i]; } + + [creatorWindowControllerSet addObject:self]; } return self; } @@ -175,7 +178,7 @@ [fPiecesField setStringValue: [NSString stringWithFormat: NSLocalizedString(@"%d pieces, %@ each", "Create torrent -> info"), fInfo->pieceCount, [NSString stringForFileSize: fInfo->pieceSize]]]; - fLocation = [[[fDefaults URLForKey: @"CreatorLocationURL"] URLByAppendingPathComponent: [name stringByAppendingPathExtension: @"torrent"]] retain]; + fLocation = [[fDefaults URLForKey: @"CreatorLocationURL"] URLByAppendingPathComponent: [name stringByAppendingPathExtension: @"torrent"]]; if (!fLocation) { //for 2.5 and earlier @@ -194,18 +197,13 @@ - (void) dealloc { - [fPath release]; - [fLocation release]; - [fTrackers release]; if (fInfo) tr_metaInfoBuilderFree(fInfo); [fTimer invalidate]; - [fTimer release]; - [super dealloc]; } + (void) restoreWindowWithIdentifier: (NSString *) identifier state: (NSCoder *) state completionHandler: (void (^)(NSWindow *, NSError *)) completionHandler @@ -233,12 +231,10 @@ - (void) window: (NSWindow *) window didDecodeRestorableState: (NSCoder *) coder { - [fLocation release]; - fLocation = [[coder decodeObjectForKey: @"TRCreatorLocation"] retain]; + fLocation = [coder decodeObjectForKey: @"TRCreatorLocation"]; [self updateLocationField]; - [fTrackers release]; - fTrackers = [[coder decodeObjectForKey: @"TRCreatorTrackers"] retain]; + fTrackers = [coder decodeObjectForKey: @"TRCreatorTrackers"]; [fTrackerTable reloadData]; [fOpenCheck setState: [coder decodeIntegerForKey: @"TRCreatorOpenCheck"]]; @@ -263,8 +259,7 @@ [panel beginSheetModalForWindow: [self window] completionHandler: ^(NSInteger result) { if (result == NSFileHandlingPanelOKButton) { - [fLocation release]; - fLocation = [[panel URL] retain]; + fLocation = [panel URL]; [self updateLocationField]; } }]; @@ -310,7 +305,7 @@ - (void) windowWillClose: (NSNotification *) notification { - [self autorelease]; + [creatorWindowControllerSet removeObject:self]; } - (IBAction) cancelCreateProgress: (id) sender @@ -419,7 +414,7 @@ BOOL added = NO; - for (NSString * tracker in tempTrackers) + for (__strong NSString * tracker in tempTrackers) { tracker = [tracker stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; @@ -479,7 +474,6 @@ [[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningCreatorPrivateBlankAddress"]; } - [alert release]; if (returnCode == NSAlertFirstButtonReturn) [self performSelectorOnMainThread: @selector(createReal) withObject: nil waitUntilDone: NO]; @@ -490,7 +484,7 @@ //check if the location currently exists if (![[fLocation URLByDeletingLastPathComponent] checkResourceIsReachableAndReturnError: NULL]) { - NSAlert * alert = [[[NSAlert alloc] init] autorelease]; + NSAlert * alert = [[NSAlert alloc] init]; [alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> directory doesn't exist warning -> button")]; [alert setMessageText: NSLocalizedString(@"The chosen torrent file location does not exist.", "Create torrent -> directory doesn't exist warning -> title")]; @@ -511,7 +505,7 @@ NSArray * pathComponents = [fLocation pathComponents]; NSInteger count = [pathComponents count]; - NSAlert * alert = [[[NSAlert alloc] init] autorelease]; + NSAlert * alert = [[NSAlert alloc] init]; [alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> file already exists warning -> button")]; [alert setMessageText: NSLocalizedString(@"A torrent file with this name and directory cannot be created.", "Create torrent -> file already exists warning -> title")]; @@ -548,7 +542,7 @@ tr_makeMetaInfo(fInfo, [[fLocation path] UTF8String], trackerInfo, [fTrackers count], [[fCommentView string] UTF8String], [fPrivateCheck state] == NSOnState); tr_free(trackerInfo); - fTimer = [[NSTimer scheduledTimerWithTimeInterval: 0.1 target: self selector: @selector(checkProgress) userInfo: nil repeats: YES] retain]; + fTimer = [NSTimer scheduledTimerWithTimeInterval: 0.1 target: self selector: @selector(checkProgress) userInfo: nil repeats: YES]; } - (void) checkProgress @@ -556,7 +550,6 @@ if (fInfo->isDone) { [fTimer invalidate]; - [fTimer release]; fTimer = nil; NSAlert * alert; @@ -580,7 +573,7 @@ break; default: - alert = [[[NSAlert alloc] init] autorelease]; + alert = [[NSAlert alloc] init]; [alert addButtonWithTitle: NSLocalizedString(@"OK", "Create torrent -> failed -> button")]; [alert setMessageText: [NSString stringWithFormat: NSLocalizedString(@"Creation of \"%@\" failed.", "Create torrent -> failed -> title"), [fLocation lastPathComponent]]]; diff --git a/macosx/DragOverlayView.m b/macosx/DragOverlayView.m index 2af77ffab..8e9e44aa2 100644 --- a/macosx/DragOverlayView.m +++ b/macosx/DragOverlayView.m @@ -52,25 +52,13 @@ forKeys: @[NSForegroundColorAttributeName, NSFontAttributeName, NSShadowAttributeName, NSParagraphStyleAttributeName]]; - [stringShadow release]; - [paragraphStyle release]; } return self; } -- (void) dealloc -{ - [fBadge release]; - - [fMainLineAttributes release]; - [fSubLineAttributes release]; - - [super dealloc]; -} - (void) setOverlay: (NSImage *) icon mainLine: (NSString *) mainLine subLine: (NSString *) subLine { - [fBadge release]; //create badge const NSRect badgeRect = NSMakeRect(0.0, 0.0, 325.0, 84.0); diff --git a/macosx/DragOverlayWindow.m b/macosx/DragOverlayWindow.m index de74f561f..8e6d0ba81 100644 --- a/macosx/DragOverlayWindow.m +++ b/macosx/DragOverlayWindow.m @@ -46,7 +46,6 @@ DragOverlayView * view = [[DragOverlayView alloc] initWithFrame: [self frame]]; [self setContentView: view]; - [view release]; [self setReleasedWhenClosed: NO]; [self setIgnoresMouseEvents: YES]; @@ -77,10 +76,7 @@ { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [fFadeInAnimation release]; - [fFadeOutAnimation release]; - [super dealloc]; } - (void) setTorrents: (NSArray *) files diff --git a/macosx/FileListNode.h b/macosx/FileListNode.h index bec03331d..b3f703d95 100644 --- a/macosx/FileListNode.h +++ b/macosx/FileListNode.h @@ -30,7 +30,7 @@ NSString * fName; NSString * fPath; - Torrent * fTorrent; + Torrent * __weak fTorrent; uint64_t fSize; NSImage * fIcon; BOOL fIsFolder; @@ -40,14 +40,14 @@ @property (nonatomic, copy, readonly) NSString * name; @property (nonatomic, copy, readonly) NSString * path; -@property (nonatomic, readonly) Torrent * torrent; +@property (nonatomic, weak, readonly) Torrent * torrent; @property (nonatomic, readonly) uint64_t size; -@property (nonatomic, retain, readonly) NSImage * icon; +@property (nonatomic, strong, readonly) NSImage * icon; @property (nonatomic, readonly) BOOL isFolder; -@property (nonatomic, retain, readonly) NSMutableArray * children; +@property (nonatomic, strong, readonly) NSMutableArray * children; -@property (nonatomic, retain, readonly) NSIndexSet * indexes; +@property (nonatomic, strong, readonly) NSIndexSet * indexes; - (id) initWithFolderName: (NSString *) name path: (NSString *) path torrent: (Torrent *) torrent; - (id) initWithFileName: (NSString *) name path: (NSString *) path size: (uint64_t) size index: (NSUInteger) index torrent: (Torrent *) torrent; diff --git a/macosx/FileListNode.m b/macosx/FileListNode.m index 2b77be02b..4e1a1ceb6 100644 --- a/macosx/FileListNode.m +++ b/macosx/FileListNode.m @@ -80,18 +80,9 @@ - (id) copyWithZone: (NSZone *) zone { //this object is essentially immutable after initial setup - return [self retain]; + return self; } -- (void) dealloc -{ - [fName release]; - [fPath release]; - [fIndexes release]; - [fIcon release]; - [fChildren release]; - [super dealloc]; -} - (NSString *) description { @@ -104,8 +95,8 @@ - (NSImage *) icon { if (!fIcon) - fIcon = [[[NSWorkspace sharedWorkspace] iconForFileType: fIsFolder ? NSFileTypeForHFSTypeCode(kGenericFolderIcon) - : [fName pathExtension]] retain]; + fIcon = [[NSWorkspace sharedWorkspace] iconForFileType: fIsFolder ? NSFileTypeForHFSTypeCode(kGenericFolderIcon) + : [fName pathExtension]]; return fIcon; } @@ -129,9 +120,7 @@ { if ([oldName isEqualToString: self.name]) { - [fName release]; fName = [newName copy]; - [fIcon release]; fIcon = nil; return YES; } @@ -148,8 +137,7 @@ NSString * oldPathPrefix = [path stringByAppendingPathComponent: oldName]; NSString * newPathPrefix = [path stringByAppendingPathComponent: newName]; - [fPath autorelease]; - fPath = [[fPath stringByReplacingCharactersInRange: NSMakeRange(0, [oldPathPrefix length]) withString: newPathPrefix] retain]; + fPath = [fPath stringByReplacingCharactersInRange: NSMakeRange(0, [oldPathPrefix length]) withString: newPathPrefix]; return YES; } } diff --git a/macosx/FileNameCell.m b/macosx/FileNameCell.m index 5a68bd863..509bb89c0 100644 --- a/macosx/FileNameCell.m +++ b/macosx/FileNameCell.m @@ -68,26 +68,17 @@ [NSFont messageFontOfSize: 9.0], NSFontAttributeName, statusParagraphStyle, NSParagraphStyleAttributeName, nil]; - [paragraphStyle release]; - [statusParagraphStyle release]; } return self; } -- (void) dealloc -{ - [fTitleAttributes release]; - [fStatusAttributes release]; - - [super dealloc]; -} - (id) copyWithZone: (NSZone *) zone { FileNameCell * copy = [super copyWithZone: zone]; - copy->fTitleAttributes = [fTitleAttributes retain]; - copy->fStatusAttributes = [fStatusAttributes retain]; + copy->fTitleAttributes = fTitleAttributes; + copy->fStatusAttributes = fStatusAttributes; return copy; } @@ -218,7 +209,7 @@ - (NSAttributedString *) attributedTitle { NSString * title = [(FileListNode *)[self objectValue] name]; - return [[[NSAttributedString alloc] initWithString: title attributes: fTitleAttributes] autorelease]; + return [[NSAttributedString alloc] initWithString: title attributes: fTitleAttributes]; } - (NSAttributedString *) attributedStatus @@ -232,7 +223,7 @@ NSString * status = [NSString stringWithFormat: NSLocalizedString(@"%@ of %@", "Inspector -> Files tab -> file status string"), percentString, [NSString stringForFileSize: [node size]]]; - return [[[NSAttributedString alloc] initWithString: status attributes: fStatusAttributes] autorelease]; + return [[NSAttributedString alloc] initWithString: status attributes: fStatusAttributes]; } @end diff --git a/macosx/FileOutlineController.m b/macosx/FileOutlineController.m index db3c348f5..885be8f0f 100644 --- a/macosx/FileOutlineController.m +++ b/macosx/FileOutlineController.m @@ -72,13 +72,6 @@ typedef enum [self setTorrent: nil]; } -- (void) dealloc -{ - [fFileList release]; - [fFilterText release]; - - [super dealloc]; -} - (FileOutlineView *) outlineView { @@ -91,7 +84,6 @@ typedef enum [fFileList setArray: [fTorrent fileList]]; - [fFilterText release]; fFilterText = nil; [fOutline reloadData]; @@ -198,8 +190,7 @@ typedef enum [fOutline endUpdates]; - [fFilterText release]; - fFilterText = [text retain]; + fFilterText = text; } - (void) refresh @@ -558,21 +549,18 @@ typedef enum [item setTarget: self]; [item setTag: FILE_CHECK_TAG]; [menu addItem: item]; - [item release]; item = [[NSMenuItem alloc] initWithTitle: NSLocalizedString(@"Uncheck Selected", "File Outline -> Menu") action: @selector(setCheck:) keyEquivalent: @""]; [item setTarget: self]; [item setTag: FILE_UNCHECK_TAG]; [menu addItem: item]; - [item release]; //only check selected item = [[NSMenuItem alloc] initWithTitle: NSLocalizedString(@"Only Check Selected", "File Outline -> Menu") action: @selector(setOnlySelectedCheck:) keyEquivalent: @""]; [item setTarget: self]; [menu addItem: item]; - [item release]; [menu addItem: [NSMenuItem separatorItem]]; @@ -581,7 +569,6 @@ typedef enum NSMenu * priorityMenu = [[NSMenu alloc] initWithTitle: @"File Priority Menu"]; [item setSubmenu: priorityMenu]; [menu addItem: item]; - [item release]; item = [[NSMenuItem alloc] initWithTitle: NSLocalizedString(@"High", "File Outline -> Priority Menu") action: @selector(setPriority:) keyEquivalent: @""]; @@ -589,7 +576,6 @@ typedef enum [item setTag: FILE_PRIORITY_HIGH_TAG]; [item setImage: [NSImage imageNamed: @"PriorityHighTemplate"]]; [priorityMenu addItem: item]; - [item release]; item = [[NSMenuItem alloc] initWithTitle: NSLocalizedString(@"Normal", "File Outline -> Priority Menu") action: @selector(setPriority:) keyEquivalent: @""]; @@ -597,7 +583,6 @@ typedef enum [item setTag: FILE_PRIORITY_NORMAL_TAG]; [item setImage: [NSImage imageNamed: @"PriorityNormalTemplate"]]; [priorityMenu addItem: item]; - [item release]; item = [[NSMenuItem alloc] initWithTitle: NSLocalizedString(@"Low", "File Outline -> Priority Menu") action: @selector(setPriority:) keyEquivalent: @""]; @@ -605,9 +590,7 @@ typedef enum [item setTag: FILE_PRIORITY_LOW_TAG]; [item setImage: [NSImage imageNamed: @"PriorityLowTemplate"]]; [priorityMenu addItem: item]; - [item release]; - [priorityMenu release]; [menu addItem: [NSMenuItem separatorItem]]; @@ -616,7 +599,6 @@ typedef enum action: @selector(revealFile:) keyEquivalent: @""]; [item setTarget: self]; [menu addItem: item]; - [item release]; [menu addItem: [NSMenuItem separatorItem]]; @@ -625,9 +607,8 @@ typedef enum action: @selector(renameSelected:) keyEquivalent: @""]; [item setTarget: self]; [menu addItem: item]; - [item release]; - return [menu autorelease]; + return menu; } - (NSUInteger) findFileNode: (FileListNode *) node inList: (NSArray *) list atIndexes: (NSIndexSet *) indexes currentParent: (FileListNode *) currentParent finalParent: (FileListNode **) parent diff --git a/macosx/FileOutlineView.m b/macosx/FileOutlineView.m index a7ac95331..e225f1849 100644 --- a/macosx/FileOutlineView.m +++ b/macosx/FileOutlineView.m @@ -33,11 +33,9 @@ { FileNameCell * nameCell = [[FileNameCell alloc] init]; [[self tableColumnWithIdentifier: @"Name"] setDataCell: nameCell]; - [nameCell release]; FilePriorityCell * priorityCell = [[FilePriorityCell alloc] init]; [[self tableColumnWithIdentifier: @"Priority"] setDataCell: priorityCell]; - [priorityCell release]; [self setAutoresizesOutlineColumn: NO]; [self setIndentationPerLevel: 14.0]; @@ -45,10 +43,6 @@ fMouseRow = -1; } -- (void) dealloc -{ - [super dealloc]; -} - (void) mouseDown: (NSEvent *) event { diff --git a/macosx/FilePriorityCell.m b/macosx/FilePriorityCell.m index ecc490cb7..1e161bffe 100644 --- a/macosx/FilePriorityCell.m +++ b/macosx/FilePriorityCell.m @@ -99,7 +99,6 @@ NSTrackingArea * area = [[NSTrackingArea alloc] initWithRect: cellFrame options: options owner: controlView userInfo: userInfo]; [controlView addTrackingArea: area]; - [area release]; } - (void) setHovered: (BOOL) hovered diff --git a/macosx/FileRenameSheetController.h b/macosx/FileRenameSheetController.h index 3bbf0166c..a51d4c180 100644 --- a/macosx/FileRenameSheetController.h +++ b/macosx/FileRenameSheetController.h @@ -18,19 +18,19 @@ void (^_completionHandler)(BOOL); NSString * _originalName; - IBOutlet NSTextField * _labelField; - IBOutlet NSTextField * _inputField; - IBOutlet NSButton * _renameButton; - IBOutlet NSButton * _cancelButton; + IBOutlet NSTextField * __weak _labelField; + IBOutlet NSTextField * __weak _inputField; + IBOutlet NSButton * __weak _renameButton; + IBOutlet NSButton * __weak _cancelButton; } + (void) presentSheetForTorrent: (Torrent *) torrent modalForWindow: (NSWindow *) window completionHandler: (void (^)(BOOL didRename)) completionHandler; + (void) presentSheetForFileListNode: (FileListNode *) node modalForWindow: (NSWindow *) window completionHandler: (void (^)(BOOL didRename)) completionHandler; -@property (assign) IBOutlet NSTextField * labelField; -@property (assign) IBOutlet NSTextField * inputField; -@property (assign) IBOutlet NSButton * renameButton; -@property (assign) IBOutlet NSButton * cancelButton; +@property (weak) IBOutlet NSTextField * labelField; +@property (weak) IBOutlet NSTextField * inputField; +@property (weak) IBOutlet NSButton * renameButton; +@property (weak) IBOutlet NSButton * cancelButton; - (IBAction) rename: (id) sender; - (IBAction) cancelRename: (id) sender; diff --git a/macosx/FileRenameSheetController.m b/macosx/FileRenameSheetController.m index 19e71ee5a..356114c7a 100644 --- a/macosx/FileRenameSheetController.m +++ b/macosx/FileRenameSheetController.m @@ -14,8 +14,8 @@ typedef void (^CompletionBlock)(BOOL); @interface FileRenameSheetController () -@property (nonatomic, retain) Torrent * torrent; -@property (nonatomic, retain) FileListNode * node; +@property (nonatomic, strong) Torrent * torrent; +@property (nonatomic, strong) FileListNode * node; @property (nonatomic, copy) CompletionBlock completionHandler; @property (nonatomic, copy) NSString * originalName; @@ -44,7 +44,7 @@ typedef void (^CompletionBlock)(BOOL); renamer.torrent = torrent; renamer.completionHandler = completionHandler; - [NSApp beginSheet: [renamer window] modalForWindow: window modalDelegate: self didEndSelector: @selector(sheetDidEnd:returnCode:contextInfo:) contextInfo: renamer]; + [NSApp beginSheet: [renamer window] modalForWindow: window modalDelegate: self didEndSelector: @selector(sheetDidEnd:returnCode:contextInfo:) contextInfo: (__bridge void *)(renamer)]; } + (void) presentSheetForFileListNode: (FileListNode *) node modalForWindow: (NSWindow *) window completionHandler: (void (^)(BOOL didRename)) completionHandler @@ -58,29 +58,19 @@ typedef void (^CompletionBlock)(BOOL); renamer.node = node; renamer.completionHandler = completionHandler; - [NSApp beginSheet: [renamer window] modalForWindow: window modalDelegate: self didEndSelector: @selector(sheetDidEnd:returnCode:contextInfo:) contextInfo: renamer]; + [NSApp beginSheet: [renamer window] modalForWindow: window modalDelegate: self didEndSelector: @selector(sheetDidEnd:returnCode:contextInfo:) contextInfo: (__bridge void *)(renamer)]; } + (void) sheetDidEnd: (NSWindow *) sheet returnCode: (NSInteger) returnCode contextInfo: (void *) contextInfo { - FileRenameSheetController * renamer = contextInfo; + FileRenameSheetController * renamer = (__bridge FileRenameSheetController *)(contextInfo); NSParameterAssert([renamer isKindOfClass:[FileRenameSheetController class]]); renamer.completionHandler(returnCode == NSOKButton); - //TODO: retain/release logic needs to be figured out for ARC (when ARC is enabled) - [renamer release]; [sheet orderOut: self]; } -- (void) dealloc -{ - [_torrent release]; - [_node release]; - [_completionHandler release]; - [_originalName release]; - [super dealloc]; -} - (void) windowDidLoad { diff --git a/macosx/FilterBarController.m b/macosx/FilterBarController.m index 4dd292d16..3a5da0770 100644 --- a/macosx/FilterBarController.m +++ b/macosx/FilterBarController.m @@ -126,7 +126,6 @@ { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [super dealloc]; } - (void) setFilter: (id) sender @@ -283,10 +282,9 @@ const NSInteger groupMenuCount = [groupMenu numberOfItems]; for (NSInteger i = 0; i < groupMenuCount; i++) { - NSMenuItem * item = [[groupMenu itemAtIndex: 0] retain]; + NSMenuItem * item = [groupMenu itemAtIndex: 0]; [groupMenu removeItemAtIndex: 0]; [menu addItem: item]; - [item release]; } } } diff --git a/macosx/FilterBarView.m b/macosx/FilterBarView.m index 94d2e53da..5429f05a2 100644 --- a/macosx/FilterBarView.m +++ b/macosx/FilterBarView.m @@ -38,11 +38,6 @@ return self; } -- (void) dealloc -{ - [fGradient release]; - [super dealloc]; -} - (BOOL) mouseDownCanMoveWindow { diff --git a/macosx/GlobalOptionsPopoverViewController.m b/macosx/GlobalOptionsPopoverViewController.m index 412a270df..769927567 100644 --- a/macosx/GlobalOptionsPopoverViewController.m +++ b/macosx/GlobalOptionsPopoverViewController.m @@ -140,8 +140,7 @@ - (BOOL) control: (NSControl *) control textShouldBeginEditing: (NSText *) fieldEditor { - [fInitialString release]; - fInitialString = [[control stringValue] retain]; + fInitialString = [control stringValue]; return YES; } @@ -152,7 +151,6 @@ if (fInitialString) { [control setStringValue: fInitialString]; - [fInitialString release]; fInitialString = nil; } return NO; diff --git a/macosx/GroupToolbarItem.m b/macosx/GroupToolbarItem.m index 4db2d4949..df8f8f76c 100644 --- a/macosx/GroupToolbarItem.m +++ b/macosx/GroupToolbarItem.m @@ -24,16 +24,10 @@ @implementation GroupToolbarItem -- (void) dealloc -{ - [fIdentifiers release]; - [super dealloc]; -} - (void) setIdentifiers: (NSArray *) identifiers { - [fIdentifiers release]; - fIdentifiers = [identifiers retain]; + fIdentifiers = identifiers; } - (void) validate @@ -42,7 +36,7 @@ for (NSInteger i = 0; i < [control segmentCount]; i++) [control setEnabled: [[self target] validateToolbarItem: - [[[NSToolbarItem alloc] initWithItemIdentifier: fIdentifiers[i]] autorelease]] forSegment: i]; + [[NSToolbarItem alloc] initWithItemIdentifier: fIdentifiers[i]]] forSegment: i]; } - (void) createMenu: (NSArray *) labels @@ -61,12 +55,9 @@ [addItem setTag: i]; [menu addItem: addItem]; - [addItem release]; } - [menu release]; [self setMenuFormRepresentation: menuItem]; - [menuItem release]; } - (NSMenuItem *) menuFormRepresentation @@ -76,7 +67,7 @@ const NSInteger count = [(NSSegmentedControl *)[self view] segmentCount]; for (NSInteger i = 0; i < count; i++) [[[menuItem submenu] itemAtIndex: i] setEnabled: [[self target] validateToolbarItem: - [[[NSToolbarItem alloc] initWithItemIdentifier: fIdentifiers[i]] autorelease]]]; + [[NSToolbarItem alloc] initWithItemIdentifier: fIdentifiers[i]]]]; return menuItem; } diff --git a/macosx/GroupsController.m b/macosx/GroupsController.m index 751aaccfc..cf7785adf 100644 --- a/macosx/GroupsController.m +++ b/macosx/GroupsController.m @@ -52,10 +52,10 @@ GroupsController * fGroupsInstance = nil; { NSData * data; if ((data = [[NSUserDefaults standardUserDefaults] dataForKey: @"GroupDicts"])) - fGroups = [[NSKeyedUnarchiver unarchiveObjectWithData: data] retain]; + fGroups = [NSKeyedUnarchiver unarchiveObjectWithData: data]; else if ((data = [[NSUserDefaults standardUserDefaults] dataForKey: @"Groups"])) //handle old groups { - fGroups = [[NSUnarchiver unarchiveObjectWithData: data] retain]; + fGroups = [NSUnarchiver unarchiveObjectWithData: data]; [[NSUserDefaults standardUserDefaults] removeObjectForKey: @"Groups"]; [self saveGroups]; } @@ -105,11 +105,6 @@ GroupsController * fGroupsInstance = nil; return self; } -- (void) dealloc -{ - [fGroups release]; - [super dealloc]; -} - (NSInteger) numberOfGroups { @@ -302,13 +297,11 @@ GroupsController * fGroupsInstance = nil; [icon setSize: NSMakeSize(ICON_WIDTH_SMALL, ICON_WIDTH_SMALL)]; [item setImage: icon]; - [icon release]; } else [item setImage: icon]; [menu addItem: item]; - [item release]; for (NSMutableDictionary * dict in fGroups) { @@ -324,16 +317,14 @@ GroupsController * fGroupsInstance = nil; [icon setSize: NSMakeSize(ICON_WIDTH_SMALL, ICON_WIDTH_SMALL)]; [item setImage: icon]; - [icon release]; } else [item setImage: icon]; [menu addItem: item]; - [item release]; } - return [menu autorelease]; + return menu; } - (NSInteger) groupIndexForTorrent: (Torrent *) torrent @@ -360,7 +351,6 @@ GroupsController * fGroupsInstance = nil; NSMutableDictionary * tempDict = [dict mutableCopy]; [tempDict removeObjectForKey: @"Icon"]; [groups addObject: tempDict]; - [tempDict release]; } [[NSUserDefaults standardUserDefaults] setObject: [NSKeyedArchiver archivedDataWithRootObject: groups] forKey: @"GroupDicts"]; @@ -385,19 +375,16 @@ GroupsController * fGroupsInstance = nil; NSGradient * gradient = [[NSGradient alloc] initWithStartingColor: [color blendedColorWithFraction: 0.45 ofColor: [NSColor whiteColor]] endingColor: color]; [gradient drawInBezierPath: bp angle: 270.0]; - [gradient release]; //inside bp = [NSBezierPath bezierPathWithRoundedRect: NSInsetRect(rect, 1.0, 1.0) xRadius: 3.0 yRadius: 3.0]; gradient = [[NSGradient alloc] initWithStartingColor: [color blendedColorWithFraction: 0.75 ofColor: [NSColor whiteColor]] endingColor: [color blendedColorWithFraction: 0.2 ofColor: [NSColor whiteColor]]]; [gradient drawInBezierPath: bp angle: 270.0]; - [gradient release]; [icon unlockFocus]; dict[@"Icon"] = icon; - [icon release]; return icon; } diff --git a/macosx/GroupsPrefsController.m b/macosx/GroupsPrefsController.m index 152c54abc..d5a68bebf 100644 --- a/macosx/GroupsPrefsController.m +++ b/macosx/GroupsPrefsController.m @@ -33,9 +33,9 @@ @interface GroupsPrefsController () -@property (nonatomic, retain) IBOutlet NSWindow * groupRulesSheetWindow; -@property (nonatomic, assign) IBOutlet NSPredicateEditor * ruleEditor; -@property (nonatomic, assign) IBOutlet NSLayoutConstraint * ruleEditorHeightConstraint; +@property (nonatomic, strong) IBOutlet NSWindow * groupRulesSheetWindow; +@property (nonatomic, weak) IBOutlet NSPredicateEditor * ruleEditor; +@property (nonatomic, weak) IBOutlet NSLayoutConstraint * ruleEditorHeightConstraint; @end @@ -367,9 +367,9 @@ NSString * location = [[GroupsController groups] customDownloadLocationForIndex: index]; if (location) { - ExpandedPathToPathTransformer * pathTransformer = [[[ExpandedPathToPathTransformer alloc] init] autorelease]; + ExpandedPathToPathTransformer * pathTransformer = [[ExpandedPathToPathTransformer alloc] init]; [[fCustomLocationPopUp itemAtIndex: 0] setTitle: [pathTransformer transformedValue: location]]; - ExpandedPathToIconTransformer * iconTransformer = [[[ExpandedPathToIconTransformer alloc] init] autorelease]; + ExpandedPathToIconTransformer * iconTransformer = [[ExpandedPathToIconTransformer alloc] init]; [[fCustomLocationPopUp itemAtIndex: 0] setImage: [iconTransformer transformedValue: location]]; } else diff --git a/macosx/InfoActivityViewController.m b/macosx/InfoActivityViewController.m index 282c6161a..95f3231a3 100644 --- a/macosx/InfoActivityViewController.m +++ b/macosx/InfoActivityViewController.m @@ -101,16 +101,13 @@ { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [fTorrents release]; - [super dealloc]; } - (void) setInfoForTorrents: (NSArray *) torrents { //don't check if it's the same in case the metadata changed - [fTorrents release]; - fTorrents = [torrents retain]; + fTorrents = torrents; fSet = NO; } diff --git a/macosx/InfoFileViewController.m b/macosx/InfoFileViewController.m index 6a034f4cd..bffdd34c3 100644 --- a/macosx/InfoFileViewController.m +++ b/macosx/InfoFileViewController.m @@ -82,18 +82,11 @@ [fCheckAllButton setFrame: checkAllFrame]; } -- (void) dealloc -{ - [fTorrents release]; - - [super dealloc]; -} - (void) setInfoForTorrents: (NSArray *) torrents { //don't check if it's the same in case the metadata changed - [fTorrents release]; - fTorrents = [torrents retain]; + fTorrents = torrents; fSet = NO; } diff --git a/macosx/InfoGeneralViewController.m b/macosx/InfoGeneralViewController.m index bb6aefa97..8e63a5a9a 100644 --- a/macosx/InfoGeneralViewController.m +++ b/macosx/InfoGeneralViewController.m @@ -42,12 +42,6 @@ return self; } -- (void) dealloc -{ - [fTorrents release]; - - [super dealloc]; -} - (void) awakeFromNib { @@ -94,8 +88,7 @@ - (void) setInfoForTorrents: (NSArray *) torrents { //don't check if it's the same in case the metadata changed - [fTorrents release]; - fTorrents = [torrents retain]; + fTorrents = torrents; fSet = NO; } diff --git a/macosx/InfoOptionsViewController.m b/macosx/InfoOptionsViewController.m index 202d4b604..fbd48e2a9 100644 --- a/macosx/InfoOptionsViewController.m +++ b/macosx/InfoOptionsViewController.m @@ -66,16 +66,13 @@ { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [fTorrents release]; - [super dealloc]; } - (void) setInfoForTorrents: (NSArray *) torrents { //don't check if it's the same in case the metadata changed - [fTorrents release]; - fTorrents = [torrents retain]; + fTorrents = torrents; fSet = NO; } @@ -464,8 +461,7 @@ - (BOOL) control: (NSControl *) control textShouldBeginEditing: (NSText *) fieldEditor { - [fInitialString release]; - fInitialString = [[control stringValue] retain]; + fInitialString = [control stringValue]; return YES; } @@ -476,7 +472,6 @@ if (fInitialString) { [control setStringValue: fInitialString]; - [fInitialString release]; fInitialString = nil; } return NO; diff --git a/macosx/InfoPeersViewController.m b/macosx/InfoPeersViewController.m index 7351718f0..9e4e3ea0a 100644 --- a/macosx/InfoPeersViewController.m +++ b/macosx/InfoPeersViewController.m @@ -105,22 +105,12 @@ [self setWebSeedTableHidden: YES animate: NO]; } -- (void) dealloc -{ - [fTorrents release]; - - [fPeers release]; - [fWebSeeds release]; - - [super dealloc]; -} #warning subclass? - (void) setInfoForTorrents: (NSArray *) torrents { //don't check if it's the same in case the metadata changed - [fTorrents release]; - fTorrents = [torrents retain]; + fTorrents = torrents; fSet = NO; } @@ -245,9 +235,7 @@ - (void) clearView { - [fPeers release]; fPeers = nil; - [fWebSeeds release]; fWebSeeds = nil; } @@ -474,7 +462,6 @@ if ([fTorrents count] == 0) { - [fPeers release]; fPeers = nil; [fPeerTable reloadData]; @@ -493,7 +480,6 @@ if (!hasWebSeeds) { - [fWebSeeds release]; fWebSeeds = nil; [fWebSeedTable reloadData]; } diff --git a/macosx/InfoTabButtonBack.m b/macosx/InfoTabButtonBack.m index 9a585ffd6..0fa6946a8 100644 --- a/macosx/InfoTabButtonBack.m +++ b/macosx/InfoTabButtonBack.m @@ -35,11 +35,6 @@ return self; } -- (void) dealloc -{ - [fGradient release]; - [super dealloc]; -} - (void) drawRect: (NSRect) rect { diff --git a/macosx/InfoTabButtonCell.m b/macosx/InfoTabButtonCell.m index 0229e9af3..8e1ac1253 100644 --- a/macosx/InfoTabButtonCell.m +++ b/macosx/InfoTabButtonCell.m @@ -33,15 +33,13 @@ fSelected = NO; //expects the icon to currently be set as the image - fIcon = [[self image] retain]; + fIcon = [self image]; } - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [fIcon release]; - [super dealloc]; } - (void) setControlView: (NSView *) controlView @@ -96,7 +94,6 @@ tabRect = NSMakeRect(0.0, 1.0, NSWidth(tabRect) - 1.0, NSHeight(tabRect) - 2.0); [gradient drawInRect: tabRect angle: 270.0]; - [gradient release]; if (fIcon) { @@ -112,7 +109,6 @@ [tabImage unlockFocus]; [self setImage: tabImage]; - [tabImage release]; } - (void) updateControlTint: (NSNotification *) notification diff --git a/macosx/InfoTrackersViewController.m b/macosx/InfoTrackersViewController.m index 91bb2e6ad..ed333d8aa 100644 --- a/macosx/InfoTrackersViewController.m +++ b/macosx/InfoTrackersViewController.m @@ -72,20 +72,11 @@ } } -- (void) dealloc -{ - [fTorrents release]; - [fTrackers release]; - [fTrackerCell release]; - - [super dealloc]; -} - (void) setInfoForTorrents: (NSArray *) torrents { //don't check if it's the same in case the metadata changed - [fTorrents release]; - fTorrents = [torrents retain]; + fTorrents = torrents; fSet = NO; } @@ -104,7 +95,7 @@ NSArray * oldTrackers = fTrackers; if ([fTorrents count] == 1) - fTrackers = [[fTorrents[0] allTrackerStats] retain]; + fTrackers = [fTorrents[0] allTrackerStats]; else { fTrackers = [[NSMutableArray alloc] init]; @@ -119,7 +110,6 @@ else [fTrackerTable reloadData]; - [oldTrackers release]; } else { @@ -128,8 +118,7 @@ NSIndexSet * addedIndexes = [NSIndexSet indexSetWithIndexesInRange: NSMakeRange([fTrackers count]-2, 2)]; NSArray * tierAndTrackerBeingAdded = [fTrackers objectsAtIndexes: addedIndexes]; - [fTrackers release]; - fTrackers = [[fTorrents[0] allTrackerStats] retain]; + fTrackers = [fTorrents[0] allTrackerStats]; [fTrackers addObjectsFromArray: tierAndTrackerBeingAdded]; [fTrackerTable setTrackers: fTrackers]; @@ -147,7 +136,6 @@ - (void) clearView { - [fTrackers release]; fTrackers = nil; } @@ -229,8 +217,7 @@ NSBeep(); //reset table with either new or old value - [fTrackers release]; - fTrackers = [[torrent allTrackerStats] retain]; + fTrackers = [torrent allTrackerStats]; [fTrackerTable setTrackers: fTrackers]; [fTrackerTable reloadData]; @@ -264,7 +251,6 @@ { if (numberSelected == 0) { - [fTrackers release]; fTrackers = nil; [fTrackerTable setTrackers: nil]; @@ -391,7 +377,6 @@ NSInteger result = [alert runModal]; if ([[alert suppressionButton] state] == NSOnState) [[NSUserDefaults standardUserDefaults] setBool: NO forKey: @"WarningRemoveTrackers"]; - [alert release]; if (result != NSAlertFirstButtonReturn) return; @@ -404,7 +389,6 @@ [torrent removeTrackers: removeIdentifiers[torrent]]; //reset table with either new or old value - [fTrackers release]; fTrackers = [[NSMutableArray alloc] init]; for (Torrent * torrent in fTorrents) [fTrackers addObjectsFromArray: [torrent allTrackerStats]]; diff --git a/macosx/InfoWindowController.m b/macosx/InfoWindowController.m index 93fdac6c5..a671889a4 100644 --- a/macosx/InfoWindowController.m +++ b/macosx/InfoWindowController.m @@ -140,16 +140,8 @@ typedef enum if ([fViewController respondsToSelector: @selector(saveViewSize)]) [fViewController saveViewSize]; - [fGeneralViewController release]; - [fActivityViewController release]; - [fTrackersViewController release]; - [fPeersViewController release]; - [fFileViewController release]; - [fOptionsViewController release]; - [fTorrents release]; - [super dealloc]; } - (void) setInfoForTorrents: (NSArray *) torrents @@ -157,8 +149,7 @@ typedef enum if (fTorrents && [fTorrents isEqualToArray: torrents]) return; - [fTorrents release]; - fTorrents = [torrents retain]; + fTorrents = torrents; [self resetInfo]; } @@ -456,7 +447,6 @@ typedef enum NSByteCountFormatter * formatter = [[NSByteCountFormatter alloc] init]; [formatter setAllowedUnits: NSByteCountFormatterUseBytes]; [fBasicInfoField setToolTip: [formatter stringFromByteCount: size]]; - [formatter release]; } else { @@ -508,7 +498,6 @@ typedef enum NSByteCountFormatter * formatter = [[NSByteCountFormatter alloc] init]; [formatter setAllowedUnits: NSByteCountFormatterUseBytes]; [fBasicInfoField setToolTip: [formatter stringFromByteCount: [torrent size]]]; - [formatter release]; } else { diff --git a/macosx/MessageWindowController.m b/macosx/MessageWindowController.m index 5462add8c..fb3b73ebb 100644 --- a/macosx/MessageWindowController.m +++ b/macosx/MessageWindowController.m @@ -110,8 +110,8 @@ filterButtonFrame.origin.x -= NSWidth(clearButtonFrame) - oldClearButtonWidth; [fFilterField setFrame: filterButtonFrame]; - fAttributes = [[[[[fMessageTable tableColumnWithIdentifier: @"Message"] dataCell] attributedStringValue] - attributesAtIndex: 0 effectiveRange: NULL] retain]; + fAttributes = [[[[fMessageTable tableColumnWithIdentifier: @"Message"] dataCell] attributedStringValue] + attributesAtIndex: 0 effectiveRange: NULL]; //select proper level in popup button switch ([[NSUserDefaults standardUserDefaults] integerForKey: @"MessageLevel"]) @@ -141,22 +141,16 @@ [[NSNotificationCenter defaultCenter] removeObserver: self]; [fTimer invalidate]; - [fTimer release]; - [fLock release]; - [fMessages release]; - [fDisplayedMessages release]; - [fAttributes release]; - [super dealloc]; } - (void) windowDidBecomeKey: (NSNotification *) notification { if (!fTimer) { - fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES] retain]; + fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES]; [self updateLog: nil]; } } @@ -164,7 +158,6 @@ - (void) windowWillClose: (id)sender { [fTimer invalidate]; - [fTimer release]; fTimer = nil; } @@ -179,8 +172,7 @@ - (void) window: (NSWindow *) window didDecodeRestorableState: (NSCoder *) coder { [fTimer invalidate]; - [fTimer release]; - fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES] retain]; + fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateLog:) userInfo: nil repeats: YES]; [self updateLog: nil]; } @@ -408,7 +400,6 @@ NSSortDescriptor * descriptor = [NSSortDescriptor sortDescriptorWithKey: @"Index" ascending: YES]; NSArray * descriptors = [[NSArray alloc] initWithObjects: descriptor, nil]; NSArray * sortedMessages = [fDisplayedMessages sortedArrayUsingDescriptors: descriptors]; - [descriptors release]; //create the text to output NSMutableArray * messageStrings = [NSMutableArray arrayWithCapacity: [sortedMessages count]]; @@ -428,7 +419,6 @@ [alert setAlertStyle: NSWarningAlertStyle]; [alert runModal]; - [alert release]; } } }]; diff --git a/macosx/NSImageAdditions.m b/macosx/NSImageAdditions.m index af850ea7e..95de01ef8 100644 --- a/macosx/NSImageAdditions.m +++ b/macosx/NSImageAdditions.m @@ -37,7 +37,7 @@ [coloredImage unlockFocus]; - return [coloredImage autorelease]; + return coloredImage; } @end diff --git a/macosx/NSMutableArrayAdditions.m b/macosx/NSMutableArrayAdditions.m index 16f723245..27602d5cc 100644 --- a/macosx/NSMutableArrayAdditions.m +++ b/macosx/NSMutableArrayAdditions.m @@ -34,7 +34,7 @@ if (fromIndex == toIndex) return; - id object = [self[fromIndex] retain]; + id object = self[fromIndex]; //shift objects - more efficient than simply removing the object and re-inserting the object if (fromIndex < toIndex) @@ -49,7 +49,6 @@ } self[toIndex] = object; - [object release]; } @end diff --git a/macosx/NSStringAdditions.m b/macosx/NSStringAdditions.m index bd52cabaa..61c7cf487 100644 --- a/macosx/NSStringAdditions.m +++ b/macosx/NSStringAdditions.m @@ -79,7 +79,6 @@ [fileSizeFormatter setIncludesUnit: !partialUnitsSame]; NSString * partialString = [fileSizeFormatter stringFromByteCount: partialSize]; - [fileSizeFormatter release]; return [NSString stringWithFormat: NSLocalizedString(@"%@ of %@", "file size string"), partialString, fullString]; } @@ -261,7 +260,6 @@ [numberFormatter setMaximumFractionDigits: decimals]; NSString * fileSizeString = [numberFormatter stringFromNumber: @(convertedSize)]; - [numberFormatter release]; if (!notAllowedUnit || ![unit isEqualToString: notAllowedUnit]) fileSizeString = [fileSizeString stringByAppendingFormat: @" %@", unit]; diff --git a/macosx/PeerProgressIndicatorCell.m b/macosx/PeerProgressIndicatorCell.m index b89e33ffe..4ecf87a66 100644 --- a/macosx/PeerProgressIndicatorCell.m +++ b/macosx/PeerProgressIndicatorCell.m @@ -28,16 +28,11 @@ - (id) copyWithZone: (NSZone *) zone { PeerProgressIndicatorCell * copy = [super copyWithZone: zone]; - copy->fAttributes = [fAttributes retain]; + copy->fAttributes = fAttributes; return copy; } -- (void) dealloc -{ - [fAttributes release]; - [super dealloc]; -} - (void) setSeed: (BOOL) seed { @@ -55,7 +50,6 @@ fAttributes = [[NSDictionary alloc] initWithObjects: @[[NSFont systemFontOfSize: 11.0], paragraphStyle] forKeys: @[NSFontAttributeName, NSParagraphStyleAttributeName]]; - [paragraphStyle release]; } [[NSString percentString: [self floatValue] longDecimals: NO] drawInRect: cellFrame withAttributes: fAttributes]; @@ -65,7 +59,6 @@ //attributes not needed anymore if (fAttributes) { - [fAttributes release]; fAttributes = nil; } diff --git a/macosx/PiecesView.m b/macosx/PiecesView.m index 7dcc75722..40a0aae17 100644 --- a/macosx/PiecesView.m +++ b/macosx/PiecesView.m @@ -46,8 +46,8 @@ enum - (void) awakeFromNib { //store box colors - fGreenAvailabilityColor = [[NSColor colorWithCalibratedRed: 0.0 green: 1.0 blue: 0.4 alpha: 1.0] retain]; - fBluePieceColor = [[NSColor colorWithCalibratedRed: 0.0 green: 0.4 blue: 0.8 alpha: 1.0] retain]; + fGreenAvailabilityColor = [NSColor colorWithCalibratedRed: 0.0 green: 1.0 blue: 0.4 alpha: 1.0]; + fBluePieceColor = [NSColor colorWithCalibratedRed: 0.0 green: 0.4 blue: 0.8 alpha: 1.0]; //actually draw the box [self setTorrent: nil]; @@ -57,10 +57,7 @@ enum { tr_free(fPieces); - [fGreenAvailabilityColor release]; - [fBluePieceColor release]; - [super dealloc]; } - (void) setTorrent: (Torrent *) torrent @@ -85,11 +82,9 @@ enum NSGradient * gradient = [[NSGradient alloc] initWithStartingColor: [NSColor colorWithCalibratedWhite: 0.0 alpha: 0.4] endingColor: [NSColor colorWithCalibratedWhite: 0.2 alpha: 0.4]]; [gradient drawInRect: [self bounds] angle: 90.0]; - [gradient release]; [back unlockFocus]; [self setImage: back]; - [back release]; [self setNeedsDisplay]; } diff --git a/macosx/PortChecker.m b/macosx/PortChecker.m index 0de2ac8cc..e5b21ac38 100644 --- a/macosx/PortChecker.m +++ b/macosx/PortChecker.m @@ -43,7 +43,7 @@ fStatus = PORT_STATUS_CHECKING; - fTimer = [[NSTimer scheduledTimerWithTimeInterval: CHECK_FIRE target: self selector: @selector(startProbe:) userInfo: @(portNumber) repeats: NO] retain]; + fTimer = [NSTimer scheduledTimerWithTimeInterval: CHECK_FIRE target: self selector: @selector(startProbe:) userInfo: @(portNumber) repeats: NO]; if (!delay) [fTimer fire]; } @@ -54,11 +54,7 @@ - (void) dealloc { [fTimer invalidate]; - [fTimer release]; - [fConnection release]; - [fPortProbeData release]; - [super dealloc]; } - (port_status_t) status @@ -69,7 +65,6 @@ - (void) cancelProbe { [fTimer invalidate]; - [fTimer release]; fTimer = nil; [fConnection cancel]; @@ -94,7 +89,6 @@ - (void) connectionDidFinishLoading: (NSURLConnection *) connection { NSString * probeString = [[NSString alloc] initWithData: fPortProbeData encoding: NSUTF8StringEncoding]; - [fPortProbeData release]; fPortProbeData = nil; if (probeString) @@ -108,7 +102,6 @@ NSLog(@"Unable to get port status: invalid response (%@)", probeString); [self callBackWithStatus: PORT_STATUS_ERROR]; } - [probeString release]; } else { @@ -123,7 +116,6 @@ - (void) startProbe: (NSTimer *) timer { - [fTimer release]; fTimer = nil; NSURLRequest * portProbeRequest = [NSURLRequest requestWithURL: [NSURL URLWithString: CHECKER_URL([[timer userInfo] integerValue])] diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m index 2072df99e..3ad1413ef 100644 --- a/macosx/PrefsController.m +++ b/macosx/PrefsController.m @@ -122,7 +122,7 @@ fRPCWhitelistArray = [[fDefaults arrayForKey: @"RPCWhitelist"] mutableCopy]; if (!fRPCWhitelistArray) - fRPCWhitelistArray = [[NSMutableArray arrayWithObject: @"127.0.0.1"] retain]; + fRPCWhitelistArray = [NSMutableArray arrayWithObject: @"127.0.0.1"]; [self updateRPCWhitelist]; //reset old Sparkle settings from previous versions @@ -147,18 +147,13 @@ [[NSNotificationCenter defaultCenter] removeObserver: self]; [fPortStatusTimer invalidate]; - [fPortStatusTimer release]; if (fPortChecker) { [fPortChecker cancelProbe]; - [fPortChecker release]; } - [fRPCWhitelistArray release]; - [fRPCPassword release]; - [super dealloc]; } - (void) awakeFromNib @@ -174,7 +169,6 @@ [toolbar setSizeMode: NSToolbarSizeModeRegular]; [toolbar setSelectedItemIdentifier: TOOLBAR_GENERAL]; [[self window] setToolbar: toolbar]; - [toolbar release]; [self setPrefView: nil]; @@ -202,7 +196,7 @@ fNatStatus = -1; [self updatePortStatus]; - fPortStatusTimer = [[NSTimer scheduledTimerWithTimeInterval: 5.0 target: self selector: @selector(updatePortStatus) userInfo: nil repeats: YES] retain]; + fPortStatusTimer = [NSTimer scheduledTimerWithTimeInterval: 5.0 target: self selector: @selector(updatePortStatus) userInfo: nil repeats: YES]; //set peer connections [fPeersGlobalField setIntValue: [fDefaults integerForKey: @"PeersTotal"]]; @@ -306,11 +300,10 @@ } else { - [item release]; return nil; } - return [item autorelease]; + return item; } - (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *) toolbar @@ -404,7 +397,6 @@ if (fPortChecker) { [fPortChecker cancelProbe]; - [fPortChecker release]; } BOOL delay = natStatusChanged || tr_sessionIsPortForwardingEnabled(fHandle); fPortChecker = [[PortChecker alloc] initForPort: fPeerPort delay: delay withDelegate: self]; @@ -432,7 +424,6 @@ NSAssert1(NO, @"Port checker returned invalid status: %d", [fPortChecker status]); break; } - [fPortChecker release]; fPortChecker = nil; } @@ -442,7 +433,7 @@ NSArray * directories = NSSearchPathForDirectoriesInDomains(NSAllLibrariesDirectory, NSUserDomainMask | NSLocalDomainMask | NSSystemDomainMask, YES); - for (NSString * directory in directories) + for (__strong NSString * directory in directories) { directory = [directory stringByAppendingPathComponent: @"Sounds"]; @@ -450,7 +441,7 @@ if ([[NSFileManager defaultManager] fileExistsAtPath: directory isDirectory: &isDirectory] && isDirectory) { NSArray * directoryContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: directory error: NULL]; - for (NSString * sound in directoryContents) + for (__strong NSString * sound in directoryContents) { sound = [sound stringByDeletingPathExtension]; if ([NSSound soundNamed: sound]) @@ -707,7 +698,7 @@ + (NSDate *) timeSumToDate: (NSInteger) sum { - NSDateComponents * comps = [[[NSDateComponents alloc] init] autorelease]; + NSDateComponents * comps = [[NSDateComponents alloc] init]; [comps setHour: sum / 60]; [comps setMinute: sum % 60]; @@ -716,8 +707,7 @@ - (BOOL) control: (NSControl *) control textShouldBeginEditing: (NSText *) fieldEditor { - [fInitialString release]; - fInitialString = [[control stringValue] retain]; + fInitialString = [control stringValue]; return YES; } @@ -728,7 +718,6 @@ if (fInitialString) { [control setStringValue: fInitialString]; - [fInitialString release]; fInitialString = nil; } return NO; @@ -748,7 +737,7 @@ - (IBAction) openGrowlApp: (id) sender { - [GrowlApplicationBridge openGrowlPreferences: YES]; + // [GrowlApplicationBridge openGrowlPreferences: YES]; } - (void) openNotificationSystemPrefs: (id) sender @@ -774,7 +763,7 @@ - (void) setDefaultForMagnets: (id) sender { NSString * bundleID = [[NSBundle mainBundle] bundleIdentifier]; - const OSStatus result = LSSetDefaultHandlerForURLScheme((CFStringRef)@"magnet", (CFStringRef)bundleID); + const OSStatus result = LSSetDefaultHandlerForURLScheme((CFStringRef)@"magnet", (__bridge CFStringRef)bundleID); if (result != noErr) NSLog(@"Failed setting default magnet link handler"); } @@ -1029,7 +1018,6 @@ - (void) setRPCPassword: (id) sender { - [fRPCPassword release]; fRPCPassword = [[sender stringValue] copy]; const char * password = [[sender stringValue] UTF8String]; @@ -1045,7 +1033,6 @@ SecKeychainFindGenericPassword(NULL, strlen(RPC_KEYCHAIN_SERVICE), RPC_KEYCHAIN_SERVICE, strlen(RPC_KEYCHAIN_NAME), RPC_KEYCHAIN_NAME, &passwordLength, (void **)&password, NULL); - [fRPCPassword release]; if (password != NULL) { char fullPassword[passwordLength+1]; @@ -1497,7 +1484,7 @@ [fGrowlAppButton setHidden: NO]; #warning remove NO - [fGrowlAppButton setEnabled: NO && [GrowlApplicationBridge isGrowlURLSchemeAvailable]]; + [fGrowlAppButton setEnabled: NO /*&& [GrowlApplicationBridge isGrowlURLSchemeAvailable] */]; [fGrowlAppButton setTitle: NSLocalizedString(@"Configure In Growl", "Prefs -> Notifications")]; [fGrowlAppButton sizeToFit]; diff --git a/macosx/ProgressGradients.m b/macosx/ProgressGradients.m index 6851a721f..ffe17e984 100644 --- a/macosx/ProgressGradients.m +++ b/macosx/ProgressGradients.m @@ -36,7 +36,7 @@ NSColor * color3 = [NSColor colorWithCalibratedRed: redComponent * 0.85 green: greenComponent * 0.85 blue: blueComponent * 0.85 alpha: alpha]; - return [[[NSGradient alloc] initWithColorsAndLocations: baseColor, 0.0, color2, 0.5, color3, 0.5, baseColor, 1.0, nil] autorelease]; + return [[NSGradient alloc] initWithColorsAndLocations: baseColor, 0.0, color2, 0.5, color3, 0.5, baseColor, 1.0, nil]; } @end diff --git a/macosx/ShareToolbarItem.m b/macosx/ShareToolbarItem.m index 5a0a541c5..450264770 100644 --- a/macosx/ShareToolbarItem.m +++ b/macosx/ShareToolbarItem.m @@ -25,7 +25,6 @@ } [menuItem setSubmenu:servicesMenu]; - [servicesMenu release]; // can't believe we're not using ARC yet! } return menuItem; diff --git a/macosx/ShareTorrentFileHelper.m b/macosx/ShareTorrentFileHelper.m index 9f28f3d19..fe4d1c47d 100644 --- a/macosx/ShareTorrentFileHelper.m +++ b/macosx/ShareTorrentFileHelper.m @@ -50,7 +50,6 @@ service.delegate = (Controller *)[NSApp delegate]; item.target = self; [items addObject: item]; - [item release]; } return items; diff --git a/macosx/StatsWindowController.m b/macosx/StatsWindowController.m index c00c69a88..f692af4e4 100644 --- a/macosx/StatsWindowController.m +++ b/macosx/StatsWindowController.m @@ -61,7 +61,7 @@ tr_session * fLib = NULL; { [self updateStats]; - fTimer = [[NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateStats) userInfo: nil repeats: YES] retain]; + fTimer = [NSTimer scheduledTimerWithTimeInterval: UPDATE_SECONDS target: self selector: @selector(updateStats) userInfo: nil repeats: YES]; [[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSModalPanelRunLoopMode]; [[NSRunLoop currentRunLoop] addTimer: fTimer forMode: NSEventTrackingRunLoopMode]; @@ -117,11 +117,7 @@ tr_session * fLib = NULL; - (void) windowWillClose: (id) sender { [fTimer invalidate]; - [fTimer release]; fTimer = nil; - - [fStatsWindowInstance autorelease]; - fStatsWindowInstance = nil; } + (void) restoreWindowWithIdentifier: (NSString *) identifier state: (NSCoder *) state completionHandler: (void (^)(NSWindow *, NSError *)) completionHandler @@ -180,7 +176,6 @@ tr_session * fLib = NULL; [fDownloadedAllField setStringValue: [NSString stringWithFormat: NSLocalizedString(@"%@ total", "stats total"), [NSString stringForFileSize: statsAll.downloadedBytes]]]; [fDownloadedAllField setToolTip: [byteFormatter stringFromByteCount: statsAll.downloadedBytes]]; - [byteFormatter release]; [fRatioField setStringValue: [NSString stringForRatio: statsSession.ratio]]; diff --git a/macosx/StatusBarController.m b/macosx/StatusBarController.m index 8801b9b35..5ab2a8bf7 100644 --- a/macosx/StatusBarController.m +++ b/macosx/StatusBarController.m @@ -90,7 +90,6 @@ typedef enum { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [super dealloc]; } - (void) updateWithDownload: (CGFloat) dlRate upload: (CGFloat) ulRate diff --git a/macosx/StatusBarView.m b/macosx/StatusBarView.m index 1891cd3cb..2a46ac733 100644 --- a/macosx/StatusBarView.m +++ b/macosx/StatusBarView.m @@ -52,7 +52,7 @@ [monochromeFilter setValue: fNoiseImage forKey: @"inputImage"]; CIColor * monoFilterColor = [CIColor colorWithRed: 1.0 green: 1.0 blue: 1.0]; [monochromeFilter setValue: monoFilterColor forKey: @"inputColor"]; - fNoiseImage = [[monochromeFilter valueForKey:@"outputImage"] retain]; + fNoiseImage = [monochromeFilter valueForKey:@"outputImage"]; } else fNoiseImage = nil; @@ -66,9 +66,6 @@ - (void) dealloc { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [fNoiseImage release]; - [fGradient release]; - [super dealloc]; } - (BOOL) mouseDownCanMoveWindow diff --git a/macosx/Torrent.m b/macosx/Torrent.m index 33ab3595d..b9fd10357 100644 --- a/macosx/Torrent.m +++ b/macosx/Torrent.m @@ -65,35 +65,35 @@ void startQueueCallback(tr_torrent * torrent, void * torrentData) { dispatch_async(dispatch_get_main_queue(), ^{ - [(Torrent *)torrentData startQueue]; + [(__bridge Torrent *)torrentData startQueue]; }); } void completenessChangeCallback(tr_torrent * torrent, tr_completeness status, bool wasRunning, void * torrentData) { dispatch_async(dispatch_get_main_queue(), ^{ - [(Torrent *)torrentData completenessChange: status wasRunning: wasRunning]; + [(__bridge Torrent *)torrentData completenessChange: status wasRunning: wasRunning]; }); } void ratioLimitHitCallback(tr_torrent * torrent, void * torrentData) { dispatch_async(dispatch_get_main_queue(), ^{ - [(Torrent *)torrentData ratioLimitHit]; + [(__bridge Torrent *)torrentData ratioLimitHit]; }); } void idleLimitHitCallback(tr_torrent * torrent, void * torrentData) { dispatch_async(dispatch_get_main_queue(), ^{ - [(Torrent *)torrentData idleLimitHit]; + [(__bridge Torrent *)torrentData idleLimitHit]; }); } void metadataCallback(tr_torrent * torrent, void * torrentData) { dispatch_async(dispatch_get_main_queue(), ^{ - [(Torrent *)torrentData metadataRetrieved]; + [(__bridge Torrent *)torrentData metadataRetrieved]; }); } @@ -104,7 +104,7 @@ void renameCallback(tr_torrent * torrent, const char * oldPathCharString, const NSString * newName = @(newNameCharString); dispatch_async(dispatch_get_main_queue(), ^{ - NSDictionary * contextDict = [(NSDictionary *)contextInfo autorelease]; + NSDictionary * contextDict = (__bridge NSDictionary *)contextInfo; Torrent * torrentObject = contextDict[@"Torrent"]; [torrentObject renameFinished: error == 0 nodes: contextDict[@"Nodes"] completionHandler: contextDict[@"CompletionHandler"] oldPath: oldPath newName: newName]; }); @@ -240,17 +240,10 @@ bool trashDataFile(const char * filename, tr_error ** error) if (fFileStat) tr_torrentFilesFree(fFileStat, [self fileCount]); - [fPreviousFinishedIndexes release]; - [fPreviousFinishedIndexesDate release]; - [fHashString release]; - [fIcon release]; - [fFileList release]; - [fFlatFileList release]; - [super dealloc]; } - (NSString *) description @@ -260,7 +253,7 @@ bool trashDataFile(const char * filename, tr_error ** error) - (id) copyWithZone: (NSZone *) zone { - return [self retain]; + return self; } - (void) closeRemoveTorrent: (BOOL) trashFiles @@ -307,10 +300,8 @@ bool trashDataFile(const char * filename, tr_error ** error) - (void) setPreviousFinishedPieces: (NSIndexSet *) indexes { - [fPreviousFinishedIndexes release]; - fPreviousFinishedIndexes = [indexes retain]; + fPreviousFinishedIndexes = indexes; - [fPreviousFinishedIndexesDate release]; fPreviousFinishedIndexesDate = indexes != nil ? [[NSDate alloc] init] : nil; } @@ -571,7 +562,6 @@ bool trashDataFile(const char * filename, tr_error ** error) [alert addButtonWithTitle: NSLocalizedString(@"OK", "Move inside itself alert -> button")]; [alert runModal]; - [alert release]; return; } @@ -593,7 +583,6 @@ bool trashDataFile(const char * filename, tr_error ** error) [alert addButtonWithTitle: NSLocalizedString(@"OK", "Move error alert -> button")]; [alert runModal]; - [alert release]; } [self updateTimeMachineExclude]; @@ -637,7 +626,6 @@ bool trashDataFile(const char * filename, tr_error ** error) const NSInteger result = [alert runModal]; if ([[alert suppressionButton] state] == NSOnState) [fDefaults setBool: NO forKey: @"WarningRemainingSpace"]; - [alert release]; return result != NSAlertFirstButtonReturn; } @@ -651,8 +639,8 @@ bool trashDataFile(const char * filename, tr_error ** error) return [NSImage imageNamed: @"Magnet"]; if (!fIcon) - fIcon = [self isFolder] ? [[NSImage imageNamed: NSImageNameFolder] retain] - : [[[NSWorkspace sharedWorkspace] iconForFileType: [[self name] pathExtension]] retain]; + fIcon = [self isFolder] ? [NSImage imageNamed: NSImageNameFolder] + : [[NSWorkspace sharedWorkspace] iconForFileType: [[self name] pathExtension]]; return fIcon; } @@ -694,7 +682,6 @@ bool trashDataFile(const char * filename, tr_error ** error) TrackerNode * tracker = [[TrackerNode alloc] initWithTrackerStat: &stats[i] torrent: self]; [trackers addObject: tracker]; - [tracker release]; } tr_torrentTrackersFree(stats, count); @@ -850,9 +837,9 @@ bool trashDataFile(const char * filename, tr_error ** error) NSParameterAssert(newName != nil); NSParameterAssert(![newName isEqualToString: @""]); - NSDictionary * contextInfo = [@{ @"Torrent" : self, @"CompletionHandler" : [[completionHandler copy] autorelease] } retain]; + NSDictionary * contextInfo = @{ @"Torrent" : self, @"CompletionHandler" : [completionHandler copy] }; - tr_torrentRenamePath(fHandle, fInfo->name, [newName UTF8String], renameCallback, contextInfo); + tr_torrentRenamePath(fHandle, fInfo->name, [newName UTF8String], renameCallback, (__bridge void *)(contextInfo)); } - (void) renameFileNode: (FileListNode *) node withName: (NSString *) newName completionHandler: (void (^)(BOOL didRename)) completionHandler @@ -861,10 +848,10 @@ bool trashDataFile(const char * filename, tr_error ** error) NSParameterAssert(newName != nil); NSParameterAssert(![newName isEqualToString: @""]); - NSDictionary * contextInfo = [@{ @"Torrent" : self, @"Nodes" : @[ node ], @"CompletionHandler" : [[completionHandler copy] autorelease] } retain]; + NSDictionary * contextInfo = @{ @"Torrent" : self, @"Nodes" : @[ node ], @"CompletionHandler" : [completionHandler copy] }; NSString * oldPath = [[node path] stringByAppendingPathComponent: [node name]]; - tr_torrentRenamePath(fHandle, [oldPath UTF8String], [newName UTF8String], renameCallback, contextInfo); + tr_torrentRenamePath(fHandle, [oldPath UTF8String], [newName UTF8String], renameCallback, (__bridge void *)(contextInfo)); } - (CGFloat) progress @@ -1702,18 +1689,17 @@ bool trashDataFile(const char * filename, tr_error ** error) if (!fHandle) { - [self release]; return nil; } } fInfo = tr_torrentInfo(fHandle); - tr_torrentSetQueueStartCallback(fHandle, startQueueCallback, self); - tr_torrentSetCompletenessCallback(fHandle, completenessChangeCallback, self); - tr_torrentSetRatioLimitHitCallback(fHandle, ratioLimitHitCallback, self); - tr_torrentSetIdleLimitHitCallback(fHandle, idleLimitHitCallback, self); - tr_torrentSetMetadataCallback(fHandle, metadataCallback, self); + tr_torrentSetQueueStartCallback(fHandle, startQueueCallback, (__bridge void *)(self)); + tr_torrentSetCompletenessCallback(fHandle, completenessChangeCallback, (__bridge void *)(self)); + tr_torrentSetRatioLimitHitCallback(fHandle, ratioLimitHitCallback, (__bridge void *)(self)); + tr_torrentSetIdleLimitHitCallback(fHandle, idleLimitHitCallback, (__bridge void *)(self)); + tr_torrentSetMetadataCallback(fHandle, metadataCallback, (__bridge void *)(self)); fHashString = [[NSString alloc] initWithUTF8String: fInfo->hashString]; @@ -1776,14 +1762,12 @@ bool trashDataFile(const char * filename, tr_error ** error) fFileList = [[NSArray alloc] initWithArray: [tempNode children]]; fFlatFileList = [[NSArray alloc] initWithArray: flatFileList]; - [tempNode release]; } else { FileListNode * node = [[FileListNode alloc] initWithFileName: [self name] path: @"" size: [self size] index: 0 torrent: self]; - fFileList = [@[node] retain]; - fFlatFileList = [fFileList retain]; - [node release]; + fFileList = @[node]; + fFlatFileList = fFileList; } } @@ -1814,10 +1798,10 @@ bool trashDataFile(const char * filename, tr_error ** error) { NSString * path = [[parent path] stringByAppendingPathComponent: [parent name]]; if (isFolder) - node = [[[FileListNode alloc] initWithFolderName: name path: path torrent: self] autorelease]; + node = [[FileListNode alloc] initWithFolderName: name path: path torrent: self]; else { - node = [[[FileListNode alloc] initWithFileName: name path: path size: size index: index torrent: self] autorelease]; + node = [[FileListNode alloc] initWithFileName: name path: path size: size index: index torrent: self]; [flatFileList addObject: node]; } @@ -1848,7 +1832,6 @@ bool trashDataFile(const char * filename, tr_error ** error) [[NSNotificationCenter defaultCenter] postNotificationName: @"UpdateQueue" object: self]; } -//status has been retained - (void) completenessChange: (tr_completeness) status wasRunning: (BOOL) wasRunning { fStat = tr_torrentStat(fHandle); //don't call update yet to avoid auto-stop @@ -1877,7 +1860,7 @@ bool trashDataFile(const char * filename, tr_error ** error) FSRef ref; if (FSPathMakeRef((const UInt8 *)[dataLocation UTF8String], &ref, NULL) == noErr) { - if (LSSetItemAttribute(&ref, kLSRolesAll, kLSItemQuarantineProperties, quarantineProperties) != noErr) + if (LSSetItemAttribute(&ref, kLSRolesAll, kLSItemQuarantineProperties, (__bridge CFTypeRef)(quarantineProperties)) != noErr) NSLog(@"Failed to quarantine: %@", dataLocation); } else @@ -1942,12 +1925,14 @@ bool trashDataFile(const char * filename, tr_error ** error) if (success) { NSString * oldName = [oldPath lastPathComponent]; - void (^__block updateNodeAndChildrenForRename)(FileListNode *) = ^(FileListNode * node) { + void (^__block __weak weakUpdateNodeAndChildrenForRename)(FileListNode *); + void (^updateNodeAndChildrenForRename)(FileListNode *); + weakUpdateNodeAndChildrenForRename = updateNodeAndChildrenForRename = ^(FileListNode * node) { [node updateFromOldName: oldName toNewName: newName inPath: path]; if ([node isFolder]) { [[node children] enumerateObjectsWithOptions: NSEnumerationConcurrent usingBlock: ^(FileListNode * childNode, NSUInteger idx, BOOL * stop) { - updateNodeAndChildrenForRename(childNode); + weakUpdateNodeAndChildrenForRename(childNode); }]; } }; @@ -1960,16 +1945,13 @@ bool trashDataFile(const char * filename, tr_error ** error) //resort lists NSMutableArray * fileList = [fFileList mutableCopy]; - [fFileList release]; [self sortFileList: fileList]; fFileList = fileList; NSMutableArray * flatFileList = [fFlatFileList mutableCopy]; - [fFlatFileList release]; [self sortFileList: flatFileList]; fFlatFileList = flatFileList; - [fIcon release]; fIcon = nil; } else @@ -2045,7 +2027,7 @@ bool trashDataFile(const char * filename, tr_error ** error) NSString * path; if ((path = [self dataLocation])) { - CSBackupSetItemExcluded((CFURLRef)[NSURL fileURLWithPath: path], exclude, false); + CSBackupSetItemExcluded((__bridge CFURLRef)[NSURL fileURLWithPath: path], exclude, false); fTimeMachineExcludeInitialized = YES; } } diff --git a/macosx/TorrentCell.m b/macosx/TorrentCell.m index d731d02ac..976f9bd6a 100644 --- a/macosx/TorrentCell.m +++ b/macosx/TorrentCell.m @@ -107,11 +107,10 @@ fStatusAttributes[NSFontAttributeName] = [NSFont messageFontOfSize: 9.0]; fStatusAttributes[NSParagraphStyleAttributeName] = paragraphStyle; - [paragraphStyle release]; - fBluePieceColor = [[NSColor colorWithCalibratedRed: 0.0 green: 0.4 blue: 0.8 alpha: 1.0] retain]; - fBarBorderColor = [[NSColor colorWithCalibratedWhite: 0.0 alpha: 0.2] retain]; - fBarMinimalBorderColor = [[NSColor colorWithCalibratedWhite: 0.0 alpha: 0.015] retain]; + fBluePieceColor = [NSColor colorWithCalibratedRed: 0.0 green: 0.4 blue: 0.8 alpha: 1.0]; + fBarBorderColor = [NSColor colorWithCalibratedWhite: 0.0 alpha: 0.2]; + fBarMinimalBorderColor = [NSColor colorWithCalibratedWhite: 0.0 alpha: 0.015]; } return self; } @@ -240,8 +239,6 @@ rowInfo[@"Type"] = @"Row"; NSTrackingArea * area = [[NSTrackingArea alloc] initWithRect: cellFrame options: rowOptions owner: controlView userInfo: rowInfo]; [controlView addTrackingArea: area]; - [rowInfo release]; - [area release]; } //control button @@ -258,8 +255,6 @@ NSTrackingArea * area = [[NSTrackingArea alloc] initWithRect: controlButtonRect options: controlOptions owner: controlView userInfo: controlInfo]; [controlView addTrackingArea: area]; - [controlInfo release]; - [area release]; //reveal button NSRect revealButtonRect = [self revealButtonRectForBounds: cellFrame]; @@ -275,8 +270,6 @@ area = [[NSTrackingArea alloc] initWithRect: revealButtonRect options: revealOptions owner: controlView userInfo: revealInfo]; [controlView addTrackingArea: area]; - [revealInfo release]; - [area release]; //action button NSRect actionButtonRect = [self iconRectForBounds: cellFrame]; //use the whole icon @@ -291,8 +284,6 @@ actionInfo[@"Type"] = @"Action"; area = [[NSTrackingArea alloc] initWithRect: actionButtonRect options: actionOptions owner: controlView userInfo: actionInfo]; [controlView addTrackingArea: area]; - [actionInfo release]; - [area release]; } - (void) setHover: (BOOL) hover @@ -358,7 +349,6 @@ NSGradient * gradient = [[NSGradient alloc] initWithStartingColor: [groupColor blendedColorWithFraction: 0.7 ofColor: [NSColor whiteColor]] endingColor: darkGroupColor]; [gradient drawInBezierPath: bp angle: 90.0]; - [gradient release]; } const BOOL error = [torrent isAnyErrorOrWarning]; @@ -692,7 +682,6 @@ [bitmap drawInRect: barRect fromRect: NSZeroRect operation: NSCompositeSourceOver fraction: ([fDefaults boolForKey: @"SmallView"] ? 0.25 : 1.0) respectFlipped: YES hints: nil]; - [bitmap release]; } - (NSRect) rectForMinimalStatusWithString: (NSAttributedString *) string inBounds: (NSRect) bounds @@ -827,12 +816,12 @@ - (NSAttributedString *) attributedTitle { NSString * title = [(Torrent *)[self representedObject] name]; - return [[[NSAttributedString alloc] initWithString: title attributes: fTitleAttributes] autorelease]; + return [[NSAttributedString alloc] initWithString: title attributes: fTitleAttributes]; } - (NSAttributedString *) attributedStatusString: (NSString *) string { - return [[[NSAttributedString alloc] initWithString: string attributes: fStatusAttributes] autorelease]; + return [[NSAttributedString alloc] initWithString: string attributes: fStatusAttributes]; } - (NSString *) buttonString diff --git a/macosx/TorrentGroup.m b/macosx/TorrentGroup.m index 39952b804..bab702f09 100644 --- a/macosx/TorrentGroup.m +++ b/macosx/TorrentGroup.m @@ -39,11 +39,6 @@ return self; } -- (void) dealloc -{ - [fTorrents release]; - [super dealloc]; -} - (NSString *) description { diff --git a/macosx/TorrentTableView.m b/macosx/TorrentTableView.m index ee2518e35..d2725fb9e 100644 --- a/macosx/TorrentTableView.m +++ b/macosx/TorrentTableView.m @@ -86,16 +86,10 @@ { [[NSNotificationCenter defaultCenter] removeObserver: self]; - [fCollapsedGroups release]; - [fPiecesBarAnimation release]; - [fMenuTorrent release]; - [fSelectedValues release]; - [fTorrentCell release]; - [super dealloc]; } - (void) awakeFromNib @@ -388,11 +382,10 @@ //if pushing a button, don't change the selected rows if (pushed) - fSelectedValues = [[self selectedValues] retain]; + fSelectedValues = [self selectedValues]; [super mouseDown: event]; - [fSelectedValues release]; fSelectedValues = nil; //avoid weird behavior when showing menu by doing this after mouse down @@ -537,7 +530,7 @@ if (items) { NSDataDetector * detector = [NSDataDetector dataDetectorWithTypes: NSTextCheckingTypeLink error: nil]; - for (NSString * pbItem in items) + for (__strong NSString * pbItem in items) { pbItem = [pbItem stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; if ([pbItem rangeOfString: @"magnet:" options: (NSAnchoredSearch | NSCaseInsensitiveSearch)].location != NSNotFound) @@ -566,7 +559,7 @@ if (items) { NSDataDetector * detector = [NSDataDetector dataDetectorWithTypes: NSTextCheckingTypeLink error: nil]; - for (NSString * pbItem in items) + for (__strong NSString * pbItem in items) { pbItem = [pbItem stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; if (([pbItem rangeOfString: @"magnet:" options: (NSAnchoredSearch | NSCaseInsensitiveSearch)].location != NSNotFound) @@ -619,8 +612,6 @@ [infoViewController setInfoForTorrents: @[torrent]]; [infoViewController updateInfo]; - [infoViewController release]; - [popover release]; } //don't show multiple popovers when clicking the gear button repeatedly @@ -657,7 +648,6 @@ [item setTarget: self]; [item setRepresentedObject: @(speedLimitActionValue[i])]; [menu addItem: item]; - [item release]; } } @@ -686,7 +676,6 @@ [item setTarget: self]; [item setRepresentedObject: @(ratioLimitActionValue[i])]; [menu addItem: item]; - [item release]; } } @@ -805,7 +794,6 @@ [progressMarks addObject: @(i)]; //this stops a previous animation - [fPiecesBarAnimation release]; fPiecesBarAnimation = [[NSAnimation alloc] initWithDuration: TOGGLE_PROGRESS_SECONDS animationCurve: NSAnimationEaseIn]; [fPiecesBarAnimation setAnimationBlockingMode: NSAnimationNonblocking]; [fPiecesBarAnimation setProgressMarks: progressMarks]; @@ -818,7 +806,6 @@ { if (animation == fPiecesBarAnimation) { - [fPiecesBarAnimation release]; fPiecesBarAnimation = nil; } } diff --git a/macosx/TrackerCell.m b/macosx/TrackerCell.m index fb5a31897..1a0566566 100644 --- a/macosx/TrackerCell.m +++ b/macosx/TrackerCell.m @@ -81,25 +81,17 @@ NSMutableSet * fTrackerIconLoading; [NSFont messageFontOfSize: 9.0], NSFontAttributeName, paragraphStyle, NSParagraphStyleAttributeName, nil]; - [paragraphStyle release]; } return self; } -- (void) dealloc -{ - [fNameAttributes release]; - [fStatusAttributes release]; - - [super dealloc]; -} - (id) copyWithZone: (NSZone *) zone { TrackerCell * copy = [super copyWithZone: zone]; - copy->fNameAttributes = [fNameAttributes retain]; - copy->fStatusAttributes = [fStatusAttributes retain]; + copy->fNameAttributes = fNameAttributes; + copy->fStatusAttributes = fStatusAttributes; return copy; } @@ -240,7 +232,6 @@ NSMutableSet * fTrackerIconLoading; if (icon) { [fTrackerIconCache setObject: icon forKey: baseAddress]; - [icon release]; [[self controlView] setNeedsDisplay: YES]; } @@ -300,18 +291,18 @@ NSMutableSet * fTrackerIconLoading; - (NSAttributedString *) attributedName { NSString * name = [(TrackerNode *)[self objectValue] host]; - return [[[NSAttributedString alloc] initWithString: name attributes: fNameAttributes] autorelease]; + return [[NSAttributedString alloc] initWithString: name attributes: fNameAttributes]; } - (NSAttributedString *) attributedStatusWithString: (NSString *) statusString { - return [[[NSAttributedString alloc] initWithString: statusString attributes: fStatusAttributes] autorelease]; + return [[NSAttributedString alloc] initWithString: statusString attributes: fStatusAttributes]; } - (NSAttributedString *) attributedCount: (NSInteger) count { NSString * countString = count != -1 ? [NSString stringWithFormat: @"%ld", count] : NSLocalizedString(@"N/A", "tracker peer stat"); - return [[[NSAttributedString alloc] initWithString: countString attributes: fStatusAttributes] autorelease]; + return [[NSAttributedString alloc] initWithString: countString attributes: fStatusAttributes]; } @end diff --git a/macosx/TrackerNode.h b/macosx/TrackerNode.h index 25777dfa3..d79280559 100644 --- a/macosx/TrackerNode.h +++ b/macosx/TrackerNode.h @@ -29,10 +29,10 @@ { tr_tracker_stat fStat; - Torrent * fTorrent; + Torrent * __weak fTorrent; } -@property (nonatomic, readonly) Torrent * torrent; +@property (nonatomic, weak, readonly) Torrent * torrent; - (id) initWithTrackerStat: (tr_tracker_stat *) stat torrent: (Torrent *) torrent; diff --git a/macosx/TrackerNode.m b/macosx/TrackerNode.m index 3d45ff96e..f5feaf0da 100644 --- a/macosx/TrackerNode.m +++ b/macosx/TrackerNode.m @@ -48,7 +48,7 @@ - (id) copyWithZone: (NSZone *) zone { //this object is essentially immutable after initial setup - return [self retain]; + return self; } - (BOOL) isEqual: (id) object @@ -111,7 +111,6 @@ [dateFormatter setDoesRelativeDateFormatting: YES]; dateString = [dateFormatter stringFromDate: [NSDate dateWithTimeIntervalSince1970: fStat.lastAnnounceTime]]; - [dateFormatter release]; } else dateString = NSLocalizedString(@"N/A", "Tracker last announce"); @@ -201,7 +200,6 @@ [dateFormatter setDoesRelativeDateFormatting: YES]; dateString = [dateFormatter stringFromDate: [NSDate dateWithTimeIntervalSince1970: fStat.lastScrapeTime]]; - [dateFormatter release]; } else dateString = NSLocalizedString(@"N/A", "Tracker last scrape"); diff --git a/macosx/URLSheetWindowController.m b/macosx/URLSheetWindowController.m index 21d13ca25..cff95ee63 100644 --- a/macosx/URLSheetWindowController.m +++ b/macosx/URLSheetWindowController.m @@ -92,7 +92,7 @@ NSString * urlString = nil; - (NSString *) urlString { - return [[[fTextField stringValue] retain] autorelease]; + return [fTextField stringValue]; } - (void) controlTextDidChange: (NSNotification *) notification diff --git a/macosx/VDKQueue/VDKQueue.h b/macosx/VDKQueue/VDKQueue.h index 9856a345f..f76b398db 100755 --- a/macosx/VDKQueue/VDKQueue.h +++ b/macosx/VDKQueue/VDKQueue.h @@ -117,7 +117,7 @@ extern NSString * VDKQueueAccessRevocationNotification; @interface VDKQueue : NSObject { - id _delegate; + id __weak _delegate; BOOL _alwaysPostNotifications; // By default, notifications are posted only if there is no delegate set. Set this value to YES to have notes posted even when there is a delegate. @private @@ -144,7 +144,7 @@ extern NSString * VDKQueueAccessRevocationNotification; -@property (assign) id delegate; +@property (weak) id delegate; @property (assign) BOOL alwaysPostNotifications; -@end \ No newline at end of file +@end diff --git a/macosx/VDKQueue/VDKQueue.m b/macosx/VDKQueue/VDKQueue.m index ad9e7840c..935e1c1ed 100755 --- a/macosx/VDKQueue/VDKQueue.m +++ b/macosx/VDKQueue/VDKQueue.m @@ -72,7 +72,6 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti _watchedFD = open([_path fileSystemRepresentation], O_EVTONLY, 0); if (_watchedFD < 0) { - [self autorelease]; return nil; } _subscriptionFlags = flags; @@ -82,13 +81,10 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti -(void) dealloc { - [_path release]; - _path = nil; if (_watchedFD >= 0) close(_watchedFD); _watchedFD = -1; - [super dealloc]; } @end @@ -130,7 +126,6 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti _coreQueueFD = kqueue(); if (_coreQueueFD == -1) { - [self autorelease]; return nil; } @@ -149,10 +144,8 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti // Do this to close all the open file descriptors for files we're watching [self removeAllPaths]; - [_watchedPathEntries release]; _watchedPathEntries = nil; - [super dealloc]; } @@ -174,7 +167,7 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti // All flags already set? if(([pathEntry subscriptionFlags] & flags) == flags) { - return [[pathEntry retain] autorelease]; + return pathEntry; } flags |= [pathEntry subscriptionFlags]; @@ -185,12 +178,12 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti if (!pathEntry) { - pathEntry = [[[VDKQueuePathEntry alloc] initWithPath:path andSubscriptionFlags:flags] autorelease]; + pathEntry = [[VDKQueuePathEntry alloc] initWithPath:path andSubscriptionFlags:flags]; } if (pathEntry) { - EV_SET(&ev, [pathEntry watchedFD], EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_CLEAR, flags, 0, pathEntry); + EV_SET(&ev, [pathEntry watchedFD], EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_CLEAR, flags, 0, (__bridge void *) pathEntry); [pathEntry setSubscriptionFlags:flags]; @@ -205,17 +198,13 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti } } - return [[pathEntry retain] autorelease]; + return pathEntry; } return nil; } -// -// WARNING: This thread has no active autorelease pool, so if you make changes, you must manually manage -// memory without relying on autorelease. Otherwise, you will leak! -// - (void) watcherThread:(id)sender { int n; @@ -252,10 +241,10 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti // check here to try to eliminate this (infrequent) problem. In theory, a KEVENT that does not have a VDKQueuePathEntry // object attached as the udata parameter is not an event we registered for, so we should not be "missing" any events. In theory. // - id pe = ev.udata; + id pe = (__bridge id)(ev.udata); if (pe && [pe respondsToSelector:@selector(path)]) { - NSString *fpath = [((VDKQueuePathEntry *)pe).path retain]; // Need to retain so it does not disappear while the block at the bottom is waiting to run on the main thread. Released in that block. + NSString *fpath = ((VDKQueuePathEntry *)pe).path; if (!fpath) continue; [[NSWorkspace sharedWorkspace] noteFileSystemChanged:fpath]; @@ -308,12 +297,9 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti { NSDictionary * userInfoDict = [[NSDictionary alloc] initWithObjects: @[fpath] forKeys: @[@"path"]]; [[[NSWorkspace sharedWorkspace] notificationCenter] postNotificationName:note object:self userInfo:userInfoDict]; - [userInfoDict release]; } } - [fpath release]; - [notes release]; }); } } @@ -332,7 +318,6 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti NSLog(@"VDKQueue watcherThread: Couldn't close main kqueue (%d)", errno); } - [notesToPost release]; #if DEBUG_LOG_THREAD_LIFETIME NSLog(@"watcherThread finished."); @@ -353,7 +338,6 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti - (void) addPath:(NSString *)aPath { if (!aPath) return; - [aPath retain]; @synchronized(self) { @@ -369,14 +353,12 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti } } - [aPath release]; } - (void) addPath:(NSString *)aPath notifyingAbout:(u_int)flags { if (!aPath) return; - [aPath retain]; @synchronized(self) { @@ -392,14 +374,12 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti } } - [aPath release]; } - (void) removePath:(NSString *)aPath { if (!aPath) return; - [aPath retain]; @synchronized(self) { @@ -411,7 +391,6 @@ NSString * VDKQueueAccessRevocationNotification = @"VDKQueueAccessWasRevokedNoti } } - [aPath release]; } -- 2.40.0