Differences From Artifact [183eed378a]:
- File src/objc_properties.m — part of check-in [ce70e17b38] at 2012-01-05 00:56:18 on branch trunk — Update copyright. (user: js, size: 2565) [annotate] [blame] [check-ins using]
To Artifact [d2cf97ab35]:
- File
src/objc_properties.m
— part of check-in
[d989794cc2]
at
2012-03-21 17:33:21
on branch trunk
— objc_setProperty(): Use a signed char for copy.
No more abusing a poor BOOL... (user: js, size: 2434) [annotate] [blame] [check-ins using] [more...]
︙ | ︙ | |||
62 63 64 65 66 67 68 | } return *(id*)(void*)((char*)self + offset); } void objc_setProperty(id self, SEL _cmd, ptrdiff_t offset, id value, BOOL atomic, | | < < < < < | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | } return *(id*)(void*)((char*)self + offset); } void objc_setProperty(id self, SEL _cmd, ptrdiff_t offset, id value, BOOL atomic, signed char copy) { if (atomic) { id *ptr = (id*)(void*)((char*)self + offset); #ifdef OF_THREADS unsigned hash = SPINLOCK_HASH(ptr); assert(of_spinlock_lock(&spinlocks[hash])); @try { #endif id old = *ptr; switch (copy) { case 0: *ptr = [value retain]; break; case 2: *ptr = [value mutableCopy]; break; default: *ptr = [value copy]; } [old release]; |
︙ | ︙ |