Overview
Comment: | runtime: Always set class->isa->isa correctly |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3cc333fb2fc24a5915feb29ad150c143 |
User & Date: | js on 2019-11-24 23:57:29 |
Other Links: | manifest | tags |
Context
2019-11-25
| ||
01:48 | .travis.yml: Add more Xcode versions for macOS check-in: 491f76c532 user: js tags: trunk | |
2019-11-24
| ||
23:57 | runtime: Always set class->isa->isa correctly check-in: 3cc333fb2f user: js tags: trunk | |
22:42 | Fix a memory leak check-in: 7ed1bdc642 user: js tags: trunk | |
Changes
Modified src/OFBlock.m from [814d0106d2] to [b86036ff7d].
︙ | |||
68 69 70 71 72 73 74 | 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 94 95 96 97 98 99 100 101 102 103 104 105 | - - + + - - + + - - + + | - (instancetype)retain; - (void)release; @end #ifdef OF_OBJFW_RUNTIME /* Begin of ObjC module */ static struct objc_class _NSConcreteStackBlock_metaclass = { |
︙ |
Modified src/runtime/class.m from [f4d6489e81] to [9e1fe8b99e].
︙ | |||
290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 | 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 | + + + + + + + + + + - + + + | if (class->info & OBJC_CLASS_INFO_SETUP) return; superclassName = (const char *)class->superclass; if (superclassName != NULL) { Class super = objc_classname_to_class(superclassName, false); Class rootClass; if (super == Nil) return; setupClass(super); if (!(super->info & OBJC_CLASS_INFO_SETUP)) return; /* * GCC sets class->isa->isa to the name of the root class, * while Clang just sets it to Nil. Therefore always calculate * it. */ for (Class iter = super; iter != NULL; iter = iter->superclass) rootClass = iter; class->superclass = super; class->isa->isa = rootClass->isa; class->isa->superclass = super->isa; addSubclass(class); addSubclass(class->isa); |
︙ |