Revision: 28491
http://sourceforge.net/p/bibdesk/svn/28491
Author: hofman
Date: 2023-12-30 22:35:08 +0000 (Sat, 30 Dec 2023)
Log Message:
-----------
define setter directly in macro
Modified Paths:
--------------
trunk/bibdesk/BDSKIBArray.m
Modified: trunk/bibdesk/BDSKIBArray.m
===================================================================
--- trunk/bibdesk/BDSKIBArray.m 2023-12-30 17:12:49 UTC (rev 28490)
+++ trunk/bibdesk/BDSKIBArray.m 2023-12-30 22:35:08 UTC (rev 28491)
@@ -40,33 +40,33 @@
@implementation BDSKIBArray
-static void setObjectAtIndex(id *object, id obj, NSUInteger i, unsigned long
*mutationsPtr) {
- if (object[i] != obj) {
- [object[i] release];
- object[i] = [obj retain];
- (*mutationsPtr)++;
- }
+#define SYNTHESIZE_OBJECT_ACCESSORS(i, j) \
+@dynamic object##i; \
+- (id)object##i { return object[j]; } \
+- (void)setObject##i:(id)obj { \
+ if (object[j] != obj) { \
+ [object[j] release]; \
+ object[j] = [obj retain]; \
+ ++mutations; \
+ } \
}
-#define SYNTHESIZE_OBJECT_ACCESSORS(i) \
-@dynamic object##i; \
-- (id)object##i { return object[i-1]; } \
-- (void)setObject##i:(id)obj { setObjectAtIndex(object, obj, i-1, &mutations);
}
+SYNTHESIZE_OBJECT_ACCESSORS(1, 0)
+SYNTHESIZE_OBJECT_ACCESSORS(2, 1)
+SYNTHESIZE_OBJECT_ACCESSORS(3, 2)
+SYNTHESIZE_OBJECT_ACCESSORS(4, 3)
+SYNTHESIZE_OBJECT_ACCESSORS(5, 4)
+SYNTHESIZE_OBJECT_ACCESSORS(6, 5)
+SYNTHESIZE_OBJECT_ACCESSORS(7, 6)
+SYNTHESIZE_OBJECT_ACCESSORS(8, 7)
+SYNTHESIZE_OBJECT_ACCESSORS(9, 8)
-SYNTHESIZE_OBJECT_ACCESSORS(1)
-SYNTHESIZE_OBJECT_ACCESSORS(2)
-SYNTHESIZE_OBJECT_ACCESSORS(3)
-SYNTHESIZE_OBJECT_ACCESSORS(4)
-SYNTHESIZE_OBJECT_ACCESSORS(5)
-SYNTHESIZE_OBJECT_ACCESSORS(6)
-SYNTHESIZE_OBJECT_ACCESSORS(7)
-SYNTHESIZE_OBJECT_ACCESSORS(8)
-SYNTHESIZE_OBJECT_ACCESSORS(9)
-
- (void)dealloc {
NSUInteger i;
- for (i = 0; i < 9; i++)
- setObjectAtIndex(object, nil, i, &mutations);
+ for (i = 0; i < 9; i++) {
+ [object[i] release];
+ object[i] = nil;
+ }
[super dealloc];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit