Overview
Comment: | Rename method replacement methods - the old names were too long. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
bce7bbddf4ff4527350698ebe5eff4ce |
User & Date: | js on 2010-05-05 17:21:55 |
Other Links: | manifest | tags |
Context
2010-05-06
| ||
15:21 | Add two missing defines to objfw-defs.h.in. check-in: 2c441703fb user: js tags: trunk | |
2010-05-05
| ||
17:21 | Rename method replacement methods - the old names were too long. check-in: bce7bbddf4 user: js tags: trunk | |
2010-05-04
| ||
12:25 | Only allow subclasses for +[replace*Method:with*MethodFromClass:]. check-in: 252833ad30 user: js tags: trunk | |
Changes
Modified src/OFObject.h from [ed24092d00] to [edc7438bce].
︙ | ︙ | |||
136 137 138 139 140 141 142 | /** * Replaces a class method with a class method from another class. * * \param selector The selector of the class method to replace * \param class_ The class from which the new class method should be taken * \return The old implementation */ | | | | | | 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 | /** * Replaces a class method with a class method from another class. * * \param selector The selector of the class method to replace * \param class_ The class from which the new class method should be taken * \return The old implementation */ + (IMP)replaceClassMethod: (SEL)selector withMethodFromClass: (Class)class_; /** * Replaces an instance method implementation with another implementation. * * \param newimp The new implementation for the instance method * \param selector The selector of the instance method to replace * \return The old implementation */ + (IMP)setImplementation: (IMP)newimp forInstanceMethod: (SEL)selector; /** * Replaces an instance method with an instance method from another class. * * \param selector The selector of the instance method to replace * \param class_ The class from which the new instance method should be taken * \return The old implementation */ + (IMP)replaceInstanceMethod: (SEL)selector withMethodFromClass: (Class)class_; /** * Initializes an already allocated object. * * Derived classes may override this, but need to do self = [super init] before * they do any initialization themselves. init may never return nil, instead * an exception (for example OFInitializationFailed) should be thrown. |
︙ | ︙ |
Modified src/OFObject.m from [721d4fa462] to [1881ae5509].
︙ | ︙ | |||
258 259 260 261 262 263 264 | sarray_at_put_safe(((Class)self->class_pointer)->dtable, (sidx)method->method_name->sel_id, method->method_imp); return oldimp; #endif } | | | | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 | sarray_at_put_safe(((Class)self->class_pointer)->dtable, (sidx)method->method_name->sel_id, method->method_imp); return oldimp; #endif } + (IMP)replaceClassMethod: (SEL)selector withMethodFromClass: (Class)class; { IMP newimp; if (![class isSubclassOfClass: self]) @throw [OFInvalidArgumentException newWithClass: self selector: _cmd]; |
︙ | ︙ | |||
314 315 316 317 318 319 320 | sarray_at_put_safe(((Class)self)->dtable, (sidx)method->method_name->sel_id, method->method_imp); return oldimp; #endif } | | | | 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 | sarray_at_put_safe(((Class)self)->dtable, (sidx)method->method_name->sel_id, method->method_imp); return oldimp; #endif } + (IMP)replaceInstanceMethod: (SEL)selector withMethodFromClass: (Class)class; { IMP newimp; if (![class isSubclassOfClass: self]) @throw [OFInvalidArgumentException newWithClass: self selector: _cmd]; |
︙ | ︙ |