History of file src/OFAutoreleasePool.m at check-in 5a19a8a2a557262d
2019-09-29
| ||
15:58 |
Deleted:
Remove OFAutoreleasePool
OFAutoreleasePools have long been discouraged in favor of the runtime's | |
2019-08-01
| ||
20:14 |
Split threading.[hm] into multiple files
This allows the runtime to only link against the parts it needs, without | |
2019-01-03
| ||
19:13 | Update copyright file: [8f3a2dc0ae] check-in: [0509d7a844] user: js, branch: trunk, size: 3391 [annotate] [blame] [check-ins using] [diff] | |
2018-01-03
| ||
19:49 | Update copyright notice file: [dc1cdf1574] check-in: [7e5c81e186] user: js, branch: trunk, size: 3385 [annotate] [blame] [check-ins using] [diff] | |
2017-10-17
| ||
00:33 |
Do not use implicit method return types
Instead, explicitly declare them, as OF_ASSUME_NONNULL_{BEGIN,END} does | |
2017-05-21
| ||
21:28 |
Prefix private methods with of_ instead of OF_
This matches Apple's style. file: [e9bf9ceb4f] check-in: [6b77a5dd8b] user: js, branch: trunk, size: 3306 [annotate] [blame] [check-ins using] [diff] | |
2017-05-07
| ||
20:10 |
Small code style change
Casts are now written like types in variable declarations. file: [d441366c61] check-in: [4af49a13c3] user: js, branch: trunk, size: 3306 [annotate] [blame] [check-ins using] [diff] | |
2017-01-09
| ||
17:36 |
Update copyright
Forgot to add 2017, even though I already did quite some changes in | |
2016-02-21
| ||
15:37 | Make use of C99-style for loops file: [98e7771e8f] check-in: [e0b9167693] user: js, branch: trunk, size: 3299 [annotate] [blame] [check-ins using] [diff] | |
2016-01-03
| ||
00:41 |
Update copyright
While at it, also update the mail address. file: [f48e2b8969] check-in: [2a27cf3000] user: js, branch: trunk, size: 3319 [annotate] [blame] [check-ins using] [diff] | |
2015-01-03
| ||
20:57 | Update copyright file: [4ad3cb8fc5] check-in: [cfd374b906] user: js, branch: trunk, size: 3315 [annotate] [blame] [check-ins using] [diff] | |
2014-06-21
| ||
21:43 |
Move all macros from OFObject.h to macros.h
This means that OFObject.h imports macros.h now, making it unnecessary | |
2014-05-14
| ||
20:19 |
Use thread_local instead of __thread
If threads.h exists, the thread_local from there is used. If it doesn't, | |
2014-01-04
| ||
00:24 | Update copyright. file: [afda14705e] check-in: [3b97fc3cd9] user: js, branch: trunk, size: 3348 [annotate] [blame] [check-ins using] [diff] | |
2013-11-23
| ||
01:27 | Add OF_UNRECOGNIZED_SELECTOR. file: [ce4907a277] check-in: [6e19bd47ee] user: js, branch: trunk, size: 3342 [annotate] [blame] [check-ins using] [diff] | |
2013-09-15
| ||
18:51 | OFAutoreleasePool: Free pool cache on thread exit. file: [c1b6db103b] check-in: [29e4d00225] user: js, branch: trunk, size: 3411 [annotate] [blame] [check-ins using] [diff] | |
2013-03-04
| ||
17:20 |
Replace BOOL with bool.
The only places where BOOL is left are those where they are required by | |
2013-02-18
| ||
12:27 | Add -[OFMutableArray initWithCapacity:]. file: [933769a877] check-in: [e0c9168dfc] user: js, branch: trunk, size: 3013 [annotate] [blame] [check-ins using] [diff] | |
2013-02-12
| ||
18:22 | Prefix all ivars with an underscore. file: [d0fc457afc] check-in: [e40729d406] user: js, branch: trunk, size: 3033 [annotate] [blame] [check-ins using] [diff] | |
2013-01-12
| ||
20:53 | Clean up the feature #ifdef mess. file: [b51231d742] check-in: [b8ce2359f3] user: js, branch: trunk, size: 3023 [annotate] [blame] [check-ins using] [diff] | |
20:21 | Fix --disable-threads. file: [5c43e2c904] check-in: [85b8efadbc] user: js, branch: trunk, size: 2963 [annotate] [blame] [check-ins using] [diff] | |
2013-01-09
| ||
22:24 | Update copyright. file: [ec3c376704] check-in: [813c00ccf0] user: js, branch: trunk, size: 2745 [annotate] [blame] [check-ins using] [diff] | |
2012-12-22
| ||
15:37 | Add -[doesNotRecognizeSelector:]. file: [b1114f3a89] check-in: [917ce5754c] user: js, branch: trunk, size: 2739 [annotate] [blame] [check-ins using] [diff] | |
2012-09-17
| ||
09:30 | Simplify autoreleasing. file: [b7dda03eca] check-in: [c9bea2982f] user: js, branch: trunk, size: 2868 [annotate] [blame] [check-ins using] [diff] | |
2012-09-16
| ||
22:16 | Make sure an autorelease pool is always in place. file: [f049b285d4] check-in: [cc9601c228] user: js, branch: trunk, size: 3618 [annotate] [blame] [check-ins using] [diff] | |
15:27 | Prefix all private methods with OF_. file: [ef9f34b1d7] check-in: [c137da5e5b] user: js, branch: trunk, size: 3552 [annotate] [blame] [check-ins using] [diff] | |
2012-08-09
| ||
15:37 | Cache 32 autorelease pools per thread. file: [1a29185e97] check-in: [4ad6599390] user: js, branch: trunk, size: 3550 [annotate] [blame] [check-ins using] [diff] | |
2012-08-07
| ||
08:35 | Add autorelease.h and export functions. file: [d255c7767f] check-in: [7fbf13845b] user: js, branch: trunk, size: 2636 [annotate] [blame] [check-ins using] [diff] | |
2012-07-16
| ||
23:49 |
Add OF_ENSURE.
This is to be used when the condition includes a statement that needs to | |
12:19 | Free memory when the last pool has been drained. file: [6326631fd1] check-in: [5abd9baa33] user: js, branch: trunk, size: 2734 [annotate] [blame] [check-ins using] [diff] | |
2012-07-14
| ||
22:21 | Fall back to of_tlskey if __thread is unavailable. file: [20bd5ed7f7] check-in: [95b1b31aa5] user: js, branch: trunk, size: 2818 [annotate] [blame] [check-ins using] [diff] | |
20:00 |
New autorelease pools.
This uses the runtime's autorelease pools and implements autorelease These new pools should be ARC-compatible now and finally, it should be As a bonus, it's significantly faster to use the ObjFW runtime with | |
2012-07-12
| ||
01:28 | Don't access isa directly. file: [6d60b227fa] check-in: [8892ae9fcc] user: js, branch: trunk, size: 4246 [annotate] [blame] [check-ins using] [diff] | |
2012-06-10
| ||
13:28 | More API improvements. file: [42c4c969f4] check-in: [11d3d69a22] user: js, branch: trunk, size: 4210 [annotate] [blame] [check-ins using] [diff] | |
2012-06-06
| ||
13:47 |
Slightly change the memory management API.
Also fix a bug where OFBigDataArray would waste memory. file: [bc3a0d2a2f] check-in: [f7576a66ce] user: js, branch: trunk, size: 4218 [annotate] [blame] [check-ins using] [diff] | |
2012-01-05
| ||
00:56 | Update copyright. file: [9f23f6d996] check-in: [ce70e17b38] user: js, branch: trunk, size: 4219 [annotate] [blame] [check-ins using] [diff] | |
2011-09-22
| ||
23:25 |
Exceptions are now autoreleased.
This is safe as an "exception loop" can't happen, since if allocating So, the worst case would be that an autorelease of an exception fails, | |
12:09 |
Make it impossible to add objects to arbitrary autorelease pools.
This is almost never done, and was made impossible in ARC-compatible | |
2011-09-19
| ||
16:34 |
Rename -[allocMemoryForNItems:withSize:] and friends. It is now -[allocMemoryForNItems:ofSize:]. file: [5a81eccbfb] check-in: [f173477bef] user: js, branch: trunk, size: 4164 [annotate] [blame] [check-ins using] [diff] | |
2011-05-05
| ||
21:17 | More documentation improvements. file: [9d07df10aa] check-in: [8490c927d2] user: js, branch: trunk, size: 4164 [annotate] [blame] [check-ins using] [diff] | |
2011-03-24
| ||
19:42 | Get rid of OFExceptions.h. file: [152777f944] check-in: [cda44767f4] user: js, branch: trunk, size: 4006 [annotate] [blame] [check-ins using] [diff] | |
2011-01-01
| ||
20:19 | Change license. file: [ed50e7f16a] check-in: [da6b3d26cb] user: js, branch: trunk, size: 3948 [annotate] [blame] [check-ins using] [diff] | |
2010-12-28
| ||
22:18 | Make ObjFW work again without threads and without atomic ops. file: [201a88918f] check-in: [88c920bd62] user: js, branch: trunk, size: 3692 [annotate] [blame] [check-ins using] [diff] | |
2010-10-25
| ||
23:03 | Clean up a lot of code (mostly init methods) and fix a missing rethrow. file: [2e10041b61] check-in: [8a7ca573c4] user: js, branch: trunk, size: 3693 [annotate] [blame] [check-ins using] [diff] | |
2010-09-07
| ||
09:10 | Rename +[addObjectToTopmostPool:] to +[addObject:]. file: [4e90c8c96d] check-in: [eafb8d18ed] user: js, branch: trunk, size: 3810 [annotate] [blame] [check-ins using] [diff] | |
2010-09-05
| ||
23:19 |
Replace OFObject* with id in many places.
We assume now that every object understands retain, release, etc. so | |
2010-07-08
| ||
09:20 |
Optimize OFAutoreleasePool.
It always allocates memory for 16 objects now. releaseObjects does not | |
2010-04-17
| ||
15:46 | Don't return self where not necessary, return void or something useful. file: [e16884bf15] check-in: [062a052b50] user: js, branch: trunk, size: 3473 [annotate] [blame] [check-ins using] [diff] | |
2010-02-19
| ||
16:36 | Update copyright. file: [86ca3a0b16] check-in: [42886185fd] user: js, branch: trunk, size: 3528 [annotate] [blame] [check-ins using] [diff] | |
2010-01-16
| ||
15:05 | Reduce dependencies between headers. file: [25082e063b] check-in: [1433aef0d0] user: js, branch: trunk, size: 3528 [annotate] [blame] [check-ins using] [diff] | |
2009-12-11
| ||
12:52 | Make it possible to build ObjFW without support for threads. file: [929d90108c] check-in: [6caac0826e] user: js, branch: trunk, size: 3527 [annotate] [blame] [check-ins using] [diff] | |
2009-11-22
| ||
16:33 | Add -[drain] to OFAutoreleasePool. file: [3ea4e1ab45] check-in: [2f85ceeed7] user: js, branch: trunk, size: 3099 [annotate] [blame] [check-ins using] [diff] | |
2009-11-14
| ||
12:17 | New solution for TLS key destructors that works on any OS. file: [8c6dcd3941] check-in: [12101c192f] user: js, branch: trunk, size: 3025 [annotate] [blame] [check-ins using] [diff] | |
2009-11-13
| ||
21:02 | Fix one more FIXME. file: [7523e6d739] check-in: [d7d45d4b69] user: js, branch: trunk, size: 3209 [annotate] [blame] [check-ins using] [diff] | |
2009-11-09
| ||
22:45 | Rename libobjfw to ObjFW. file: [c0583ef178] check-in: [a3cc34b139] user: js, branch: trunk, size: 2678 [annotate] [blame] [check-ins using] [diff] | |
2009-09-21
| ||
20:35 | A few minor Win32 fixes. file: [5130372aa2] check-in: [59969f5450] user: js, branch: trunk, size: 2681 [annotate] [blame] [check-ins using] [diff] | |
11:15 | Move platform-specific threading stuff to threading.h. file: [2c07550cc7] check-in: [15a67e8ee5] user: js, branch: trunk, size: 2731 [annotate] [blame] [check-ins using] [diff] | |
2009-09-16
| ||
17:23 | A few very small mingw32 fixes. file: [992a58ee6a] check-in: [0375b1e0ea] user: js, branch: trunk, size: 3847 [annotate] [blame] [check-ins using] [diff] | |
16:22 | Rework OFAutoreleasePool and remove now unnecessary hack from OFList. file: [b3f1509666] check-in: [a99f512a4a] user: js, branch: trunk, size: 3797 [annotate] [blame] [check-ins using] [diff] | |
2009-07-19
| ||
14:05 | Rename andFoo: to foo: in all methods. file: [d23a1326bd] check-in: [4eae61a78f] user: js, branch: trunk, size: 3049 [annotate] [blame] [check-ins using] [diff] | |
2009-06-30
| ||
12:07 |
A few renames in OFObject, see details.
* +[conformsTo:] to +[conformsToProtocol:]. | |
2009-06-02
| ||
20:15 |
No need to override -[release] in OFAutoreleasePool.
As we can't retain a pool, -[dealloc] will always be called when -[release] | |
2009-05-24
| ||
18:04 | Always use #include "config.h" instead of #import "config.h". file: [8e1c79e9ad] check-in: [94ea6848a8] user: js, branch: trunk, size: 3218 [annotate] [blame] [check-ins using] [diff] | |
2009-05-23
| ||
21:53 |
A few renames.
OFArray: OFAutoreleasePool: OFDataArray: OFObject: | |
01:59 | Prevent + initialize from being called twice. file: [2fd942db62] check-in: [e0163c30a9] user: js, branch: trunk, size: 3198 [annotate] [blame] [check-ins using] [diff] | |
2009-05-19
| ||
10:33 | Better error handling for OFAutoreleasePools. file: [4359bf55c9] check-in: [e5efcb03ac] user: js, branch: trunk, size: 3147 [annotate] [blame] [check-ins using] [diff] | |
2009-05-18
| ||
17:50 | Split OFArray into OFArray and OFMutableArray. file: [81f708f0c4] check-in: [163409967e] user: js, branch: trunk, size: 2731 [annotate] [blame] [check-ins using] [diff] | |
2009-05-15
| ||
22:59 | As we memset our ivars to 0, get rid of some useless ivar inits. file: [c665c234c4] check-in: [4c6d6c56ac] user: js, branch: trunk, size: 2724 [annotate] [blame] [check-ins using] [diff] | |
2009-05-14
| ||
14:24 | Get rid of OFNotInSetException. file: [3f9b8ad9ca] check-in: [bdc9b3219f] user: js, branch: trunk, size: 2741 [annotate] [blame] [check-ins using] [diff] | |
13:46 |
Two small fixes for OFAutoreleasePool.
First, when an OFAutoreleasePool is deallocated, it should always Second, releaseObject should also release the objects of the pools on | |
2009-05-13
| ||
20:39 |
Let - release return void again.
If you want to know if it will be released, you can just get the retain | |
20:31 | Rename - free to - (void)dealloc. file: [4d907e6ad8] check-in: [9e6dd00ef5] user: js, branch: trunk, size: 2748 [annotate] [blame] [check-ins using] [diff] | |
19:49 | There's no need for + initialize to return anything. file: [5bcc5ee828] check-in: [917188fdcc] user: js, branch: trunk, size: 2737 [annotate] [blame] [check-ins using] [diff] | |
17:58 | Also release pools that are on top of the pool being released. file: [82173abc64] check-in: [4f4f619d84] user: js, branch: trunk, size: 2746 [annotate] [blame] [check-ins using] [diff] | |
2009-05-05
| ||
12:05 |
Rename OFArray to OFDataArray and add a new OFArray which stores objects. Additionally, change OFAutoreleasePool to use the new OFArray. And while at it, change #import <config.h> in some files to | |
2009-05-04
| ||
13:01 | Use OFThread's TLS in OFAutoreleasePool. file: [c9f95c0438] check-in: [2d09137a6b] user: js, branch: trunk, size: 2402 [annotate] [blame] [check-ins using] [diff] | |
2009-04-21
| ||
17:16 | The if ((self = [super init])) construct isn't needed anymore. file: [f928f923c8] check-in: [d87df02e8b] user: js, branch: trunk, size: 2771 [annotate] [blame] [check-ins using] [diff] | |
2009-04-20
| ||
01:16 | Fix forgotten change of - release in OFAutoreleasePool. file: [6c7114863d] check-in: [cc4fe36d83] user: js, branch: trunk, size: 2796 [annotate] [blame] [check-ins using] [diff] | |
2009-03-15
| ||
16:54 | Fix missing #import "config.h". file: [c444fdcf51] check-in: [c9b6747306] user: js, branch: trunk, size: 2794 [annotate] [blame] [check-ins using] [diff] | |
2009-03-08
| ||
16:06 | Rename initWithRetainAndReleaseEnabled to initWithoutRetainAndRelease. file: [3a1c237454] check-in: [43e4d25ca7] user: js, branch: trunk, size: 2774 [annotate] [blame] [check-ins using] [diff] | |
2009-03-04
| ||
20:49 | - release should not be chained, might be free'd. Therefore return void. file: [c9b8f8d309] check-in: [e73e76e40f] user: js, branch: trunk, size: 2782 [annotate] [blame] [check-ins using] [diff] | |
2009-02-27
| ||
12:31 | (void)initialize -> initialize. file: [69d36d4f2d] check-in: [3b62c10b6f] user: js, branch: trunk, size: 2784 [annotate] [blame] [check-ins using] [diff] | |
2009-02-14
| ||
17:26 |
Always use #include for libc headers due to glibc being broken. Do the same for win32 headers, just in case. They should work with #import, but you never know ;). file: [94601c49b9] check-in: [029511474c] user: js, branch: trunk, size: 2775 [annotate] [blame] [check-ins using] [diff] | |
2009-01-24
| ||
15:24 | Adjust API to introduction of OFAutoreleasePool. file: [6b8df1f839] check-in: [1496808b81] user: js, branch: trunk, size: 2772 [annotate] [blame] [check-ins using] [diff] | |
2009-01-20
| ||
14:53 |
Fix a bug causing an exception when autorelease was requested. This happened when the last pool was released before. file: [53c2a094cf] check-in: [cb9fd1e5dd] user: js, branch: trunk, size: 2763 [annotate] [blame] [check-ins using] [diff] | |
2009-01-07
| ||
17:10 |
Also release the pools when we release the pool list. We need to do that manually as we disabled retain / release for the list. file: [d3843af4f8] check-in: [03618ea87b] user: js, branch: trunk, size: 2735 [annotate] [blame] [check-ins using] [diff] | |
2009-01-06
| ||
22:38 |
Use OFList and OFArray in OFAutoreleasePool. This reduces code duplication and looks far better. file: [8a91012795] check-in: [dfc10dbeb8] user: js, branch: trunk, size: 2480 [annotate] [blame] [check-ins using] [diff] | |
2009-01-05
| ||
00:59 | Update copyright. file: [e28fa49a4f] check-in: [f1b749d113] user: js, branch: trunk, size: 4150 [annotate] [blame] [check-ins using] [diff] | |
00:56 | Added: Initial OFAutoreleasePool - still needs a *lot* of testing. file: [801231f42a] check-in: [b412845664] user: js, branch: trunk, size: 4143 [annotate] [blame] [check-ins using] | |