Differences From Artifact [7aefac85c2]:
- File
src/foundation-compat.m
— part of check-in
[3d0a1604ae]
at
2011-02-02 22:26:45
on branch trunk
— Increase blocks compatibility by replacing NSAutoreleasePool.
NSAutoreleasePool is replaced by OFAutoreleasePool now so that there is
no conflict because OFBlocks are used (blocks are OFBlocks as soon as
ObjFW is linked). An application expecting an NSBlock, but getting an
OFBlock because ObjFW is linked, would fail to autorelease the block
otherwise, as the block would be in an OFAutoreleasePool. By replacing
NSAutoreleasePool with OFAutoreleasePool, the application will still
properly free the autoreleased block.This will also make it easier to write applications using both,
Foundation and ObjFW, since the developer does not need to take care
about two different autorelease pools, but they are united instead. (user: js, size: 1969) [annotate] [blame] [check-ins using]
To Artifact [1de79742c4]:
- File src/foundation-compat.m — part of check-in [4bace0f852] at 2011-02-04 15:36:49 on branch trunk — Oops. Forgot to remove a fixme before committing. (user: js, size: 2445) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
10 11 12 13 14 15 16 | * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ | | | > > > > > > | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | * * Alternatively, it may be distributed under the terms of the GNU General * Public License, either version 2 or 3, which can be found in the file * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this * file. */ /* * This file replaces NSAutoreleasePool with OFAutoreleasePool when it is * linked. This is done so there is no conflict because OFBlocks are used * (blocks are OFBlocks as soon as ObjFW is linked). An application expecting * an NSBlock, but getting an OFBlock because ObjFW is linked, would fail to * autorelease the block otherwise, as the block would be in an * OFAutoreleasePool. By replacing NSAutoreleasePool with OFAutoreleasePool, * the application will still properly free the autoreleased block. */ #include "config.h" #import <objc/runtime.h> #import "OFAutoreleasePool.h" |
︙ | ︙ |