Overview
Comment: | The new Apple runtime requires +[load] in OFConstantString. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
08389242d9018494df6c03610d59a124 |
User & Date: | js on 2012-01-30 22:56:18 |
Other Links: | manifest | tags |
Context
2012-01-31
| ||
10:59 | Add -[sortedArray] to OFArray. check-in: b48145bb74 user: js tags: trunk | |
2012-01-30
| ||
22:56 | The new Apple runtime requires +[load] in OFConstantString. check-in: 08389242d9 user: js tags: trunk | |
2012-01-25
| ||
20:11 | Don't treat \f as whitespace in XML. check-in: 1c9c536749 user: js tags: trunk | |
Changes
Modified src/OFConstantString.m from [cb5a866f0f] to [1513456645].
︙ | ︙ | |||
119 120 121 122 123 124 125 | @throw [OFNotImplementedException exceptionWithClass: isa selector: _cmd]; [super dealloc]; /* Get rid of a stupid warning */ } @end @implementation OFConstantString | < > < > | 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | @throw [OFNotImplementedException exceptionWithClass: isa selector: _cmd]; [super dealloc]; /* Get rid of a stupid warning */ } @end @implementation OFConstantString + (void)load { #if defined(OF_APPLE_RUNTIME) && !defined(__OBJC2__) /* * objc_setFutureClass suddenly stopped working as OFConstantString * became more complex. So the only solution is to make * _OFConstantStringClassRerence the actual class, but there is no * objc_initializeClassPair in 10.5. However, objc_allocateClassPair * does not register the new class with the subclass in the ObjC1 * runtime like the ObjC2 runtime does, so this workaround should be * fine. */ Class class; if ((class = objc_allocateClassPair(self, "OFConstantString_hack", 0)) == NULL) @throw [OFInitializationFailedException exceptionWithClass: self]; memcpy(&_OFConstantStringClassReference, class, sizeof(_OFConstantStringClassReference)); free(class); objc_registerClassPair((Class)&_OFConstantStringClassReference); #endif } - (void)finishInitialization { struct of_string_utf8_ivars *ivars; if ((ivars = malloc(sizeof(*ivars))) == NULL) @throw [OFOutOfMemoryException |
︙ | ︙ |