Overview
Comment: | Free memory when the last pool has been drained. |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
5abd9baa333c7b12a1211caf86f9483d |
User & Date: | js on 2012-07-16 12:19:59 |
Other Links: | manifest | tags |
Context
2012-07-16
| ||
22:44 | Don't require extra parentheses for OF_(UN)LIKELY. check-in: ff8b2a6c29 user: js tags: trunk | |
12:19 | Free memory when the last pool has been drained. check-in: 5abd9baa33 user: js tags: trunk | |
2012-07-15
| ||
00:54 | Fix a memory leak. check-in: f772f8c188 user: js tags: trunk | |
Changes
Modified src/OFAutoreleasePool.m from [20bd5ed7f7] to [6326631fd1].
︙ | ︙ | |||
86 87 88 89 90 91 92 | pool = objc_autoreleasePoolPush(); if (first == NULL) #ifdef OF_COMPILER_TLS first = pool; #else | | < < | 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | pool = objc_autoreleasePoolPush(); if (first == NULL) #ifdef OF_COMPILER_TLS first = pool; #else assert(of_tlskey_set(firstKey, pool)); #endif _objc_rootAutorelease(self); } @catch (id e) { [self release]; @throw e; } |
︙ | ︙ |
Modified src/runtime/autorelease.m from [0fa16a5970] to [43d183da0e].
︙ | ︙ | |||
72 73 74 75 76 77 78 | #endif id *pool = objects + (ptrdiff_t)offset; id *iter; for (iter = pool; iter < top; iter++) [*iter release]; | > | > > > > | > | > | | 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 | #endif id *pool = objects + (ptrdiff_t)offset; id *iter; for (iter = pool; iter < top; iter++) [*iter release]; top = pool; if (top == objects) { free(objects); objects = NULL; top = NULL; } #ifndef OF_COMPILER_TLS if (!of_tlskey_set(objectsKey, objects) ||!of_tlskey_set(topKey, top)) ERROR("Failed to set TLS key!") #endif } id _objc_rootAutorelease(id object) { |
︙ | ︙ |