summaryrefslogtreecommitdiff
path: root/macosx/PcsxrMemCardController.m
diff options
context:
space:
mode:
authorSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-01-09 01:50:38 +0000
committerSND\MaddTheSane_cp <SND\MaddTheSane_cp@e17a0e51-4ae3-4d35-97c3-1a29b211df97>2013-01-09 01:50:38 +0000
commit9af085242bda9ad4da78ef23e9d4ed180aa2c629 (patch)
treec776a5dfefbe475936a461b54d469d244df9de75 /macosx/PcsxrMemCardController.m
parentc5b4bf6974fbfd05b6e75c494d11569756034e36 (diff)
downloadpcsxr-9af085242bda9ad4da78ef23e9d4ed180aa2c629.tar.gz
Use ARC in 64-bit mode on the Mac.
Register when we drag a disc image (or double click) to Pcsxr in the recent menu. Comment out ReleasePlugins() in SysClose: it was causing a pointer to be released twice when you changed a plug-in (specifically, the GPU). Cleaning up the Recent items code. One notable case is only releasing objects we have ownership of (this is pointless in ARC, but necessary in 32-bit code). Had to rewrite -[PluginList setActivePlugin:forType:] because the previous version wasn't ARC-friendly. If we select a disc while the emulator is running, load the disc into the current session. git-svn-id: https://pcsxr.svn.codeplex.com/svn/pcsxr@82136 e17a0e51-4ae3-4d35-97c3-1a29b211df97
Diffstat (limited to 'macosx/PcsxrMemCardController.m')
-rwxr-xr-xmacosx/PcsxrMemCardController.m18
1 files changed, 11 insertions, 7 deletions
diff --git a/macosx/PcsxrMemCardController.m b/macosx/PcsxrMemCardController.m
index 858cc1dc..eebc0fc6 100755
--- a/macosx/PcsxrMemCardController.m
+++ b/macosx/PcsxrMemCardController.m
@@ -10,6 +10,7 @@
#import "PcsxrMemoryObject.h"
#import "ConfigurationController.h"
#include "sio.h"
+#import "ARCBridge.h"
#define MAX_MEMCARD_BLOCKS 15
@@ -42,7 +43,9 @@ static inline void CopyMemcardData(char *from, char *to, int srci, int dsti, cha
- (void)setMemCard1Array:(NSMutableArray *)a
{
if (memCard1Array != a) {
+#if !__has_feature(objc_arc)
[memCard1Array release];
+#endif
memCard1Array = [[NSMutableArray alloc] initWithArray:a];
}
}
@@ -65,7 +68,9 @@ static inline void CopyMemcardData(char *from, char *to, int srci, int dsti, cha
- (void)setMemCard2Array:(NSMutableArray *)a
{
if (memCard2Array != a) {
+#if !__has_feature(objc_arc)
[memCard2Array release];
+#endif
memCard2Array = [[NSMutableArray alloc] initWithArray:a];
}
}
@@ -129,21 +134,20 @@ static inline void CopyMemcardData(char *from, char *to, int srci, int dsti, cha
PcsxrMemoryObject *ob = [[PcsxrMemoryObject alloc] initWithMcdBlock:&info];
[newArray insertObject:ob atIndex:i];
- [ob release];
+ RELEASEOBJ(ob);
}
if (theCard == 1) {
[self setMemCard1Array:newArray];
} else {
[self setMemCard2Array:newArray];
}
- [newArray release];
+ RELEASEOBJ(newArray);
}
- (void)memoryCardDidChangeNotification:(NSNotification *)aNote
{
- LoadMcd(1, Config.Mcd1);
+ LoadMcds(Config.Mcd1, Config.Mcd2);
[self loadMemoryCardInfoForCard:1];
- LoadMcd(2, Config.Mcd2);
[self loadMemoryCardInfoForCard:2];
}
@@ -400,10 +404,10 @@ static inline void CopyMemcardData(char *from, char *to, int srci, int dsti, cha
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
- [memCard1Array release];
- [memCard2Array release];
+ RELEASEOBJ(memCard1Array);
+ RELEASEOBJ(memCard2Array);
- [super dealloc];
+ SUPERDEALLOC;
}
- (BOOL)isMemoryBlockEmptyOnCard:(int)aCard block:(int)aBlock