Comment: | Increase blocks compatibility by replacing NSAutoreleasePool.
NSAutoreleasePool is replaced by OFAutoreleasePool now so that there is This will also make it easier to write applications using both, |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
3d0a1604aea19fe83d86b73c9c47977f |
User & Date: | js on 2011-02-02 22:26:45 |
Other Links: | manifest | tags |
2011-02-03
| ||
20:58 | Improve README. check-in: ce1e81bdb2 user: js tags: trunk | |
2011-02-02
| ||
22:26 | Increase blocks compatibility by replacing NSAutoreleasePool. check-in: 3d0a1604ae user: js tags: trunk | |
17:38 | Work around some annoying compiler bugs. check-in: 1dcfbcb479 user: js tags: trunk | |
Modified configure.ac from [aad91aaffc] to [18c25283af].
︙ | ︙ | |||
427 428 429 430 431 432 433 434 435 436 437 438 439 440 | ], [ AC_MSG_RESULT(no) ]) AC_CHECK_FUNC(madvise, [ AC_DEFINE(HAVE_MADVISE, 1, [Whether we have madvise]) ]) AS_IF([test x"$GOBJC" = x"yes"], [ OBJCFLAGS="$OBJCFLAGS -Werror" AC_MSG_CHECKING(whether gcc has bug objc/27438) AC_TRY_COMPILE([ #import <objc/objc.h> | > > > > > > | 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 | ], [ AC_MSG_RESULT(no) ]) AC_CHECK_FUNC(madvise, [ AC_DEFINE(HAVE_MADVISE, 1, [Whether we have madvise]) ]) AS_IF([test x"$objc_runtime" = x"Apple"], [ AC_CHECK_HEADER(Foundation/Foundation.h, [ AC_SUBST(FOUNDATION_COMPAT_M, "foundation-compat.m") ]) ]) AS_IF([test x"$GOBJC" = x"yes"], [ OBJCFLAGS="$OBJCFLAGS -Werror" AC_MSG_CHECKING(whether gcc has bug objc/27438) AC_TRY_COMPILE([ #import <objc/objc.h> |
︙ | ︙ |
Modified extra.mk.in from [f7112abbb6] to [abea8b5d75].
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | OBJFW_SHARED_LIB = @OBJFW_SHARED_LIB@ OBJFW_STATIC_LIB = @OBJFW_STATIC_LIB@ OBJFW_LIB_MAJOR = 3 OBJFW_LIB_MINOR = 0 OBJFW_LIB_MAJOR_MINOR = ${OBJFW_LIB_MAJOR}.${OBJFW_LIB_MINOR} ASPRINTF_M = @ASPRINTF_M@ ATOMIC_H = @ATOMIC_H@ BIN_PREFIX = @BIN_PREFIX@ MACH_ALIAS_LIST = @MACH_ALIAS_LIST@ OFBLOCKTESTS_M = @OFBLOCKTESTS_M@ OBJC_PROPERTIES_M = @OBJC_PROPERTIES_M@ OBJC_SYNC_M = @OBJC_SYNC_M@ OFPLUGIN_M = @OFPLUGIN_M@ OFPLUGINTESTS_M = @OFPLUGINTESTS_M@ OFTHREAD_M = @OFTHREAD_M@ | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | OBJFW_SHARED_LIB = @OBJFW_SHARED_LIB@ OBJFW_STATIC_LIB = @OBJFW_STATIC_LIB@ OBJFW_LIB_MAJOR = 3 OBJFW_LIB_MINOR = 0 OBJFW_LIB_MAJOR_MINOR = ${OBJFW_LIB_MAJOR}.${OBJFW_LIB_MINOR} ASPRINTF_M = @ASPRINTF_M@ ATOMIC_H = @ATOMIC_H@ BIN_PREFIX = @BIN_PREFIX@ FOUNDATION_COMPAT_M = @FOUNDATION_COMPAT_M@ MACH_ALIAS_LIST = @MACH_ALIAS_LIST@ OFBLOCKTESTS_M = @OFBLOCKTESTS_M@ OBJC_PROPERTIES_M = @OBJC_PROPERTIES_M@ OBJC_SYNC_M = @OBJC_SYNC_M@ OFPLUGIN_M = @OFPLUGIN_M@ OFPLUGINTESTS_M = @OFPLUGINTESTS_M@ OFTHREAD_M = @OFTHREAD_M@ |
︙ | ︙ |
Modified src/Makefile from [25fedfa6c0] to [f7798a36a9].
︙ | ︙ | |||
51 52 53 54 55 56 57 58 59 60 61 62 63 64 | asprintf.h \ ${ATOMIC_H} \ macros.h \ objfw-defs.h \ ${THREADING_H} SRCS += ${ASPRINTF_M} \ iso_8859_15.m \ windows_1252.m \ ${OBJC_PROPERTIES_M} \ ${OBJC_SYNC_M} include ../buildsys.mk | > | 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | asprintf.h \ ${ATOMIC_H} \ macros.h \ objfw-defs.h \ ${THREADING_H} SRCS += ${ASPRINTF_M} \ ${FOUNDATION_COMPAT_M} \ iso_8859_15.m \ windows_1252.m \ ${OBJC_PROPERTIES_M} \ ${OBJC_SYNC_M} include ../buildsys.mk |
︙ | ︙ |
Added src/foundation-compat.m version [7aefac85c2].
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | /* * Copyright (c) 2008, 2009, 2010, 2011 * Jonathan Schleifer <js@webkeks.org> * * All rights reserved. * * This file is part of ObjFW. It may be distributed under the terms of the * Q Public License 1.0, which can be found in the file LICENSE.QPL included in * the packaging of this file. * * 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. */ /* FIXME: * Kommentar warum benötigt */ #include "config.h" #import <objc/runtime.h> #import "OFAutoreleasePool.h" static id alloc(Class self, SEL _cmd) { return [OFAutoreleasePool alloc]; } static void addObject(Class self, SEL _cmd, id obj) { [OFAutoreleasePool addObject: obj]; } static id autorelease(id self, SEL _cmd) { [OFAutoreleasePool addObject: self]; return self; } static void __attribute__((constructor)) init() { Class NSAutoreleasePool = objc_getClass("NSAutoreleasePool"); Class NSObject = objc_getClass("NSObject"); Method alloc_method; Method addObject_method; Method autorelease_method; if (NSAutoreleasePool == Nil || NSObject == Nil) return; alloc_method = class_getClassMethod(NSAutoreleasePool, @selector(alloc)); addObject_method = class_getClassMethod(NSAutoreleasePool, @selector(addObject:)); autorelease_method = class_getInstanceMethod(NSObject, @selector(autorelease)); if (alloc_method == NULL || addObject_method == NULL || autorelease_method == NULL) return; class_replaceMethod(NSAutoreleasePool->isa, @selector(alloc), (IMP)alloc, method_getTypeEncoding(alloc_method)); class_replaceMethod(NSAutoreleasePool->isa, @selector(addObject:), (IMP)addObject, method_getTypeEncoding(addObject_method)); class_replaceMethod(NSObject, @selector(autorelease), (IMP)autorelease, method_getTypeEncoding(autorelease_method)); } |