Index: PLATFORMS ================================================================== --- PLATFORMS +++ PLATFORMS @@ -1,33 +1,34 @@ ObjFW is known to work on the following platforms, but should run on many others as well: - +-------------------------+--------------+----------------------+ - | OS | Architecture | Compiler | - +-------------------------+--------------+----------------------+ - | FreeBSD >= 8.0 | x86 | | - +-------------------------+--------------+----------------------+ - | Linux | x86 | gcc 4.4.1 | - | Linux | x86 | llvm/clang r83252 | - | Linux | x86_64 | gcc 4.4.1 | - +-------------------------+--------------+----------------------+ - | iPhone OS >= 2.2.1 | arm | gcc 4.2 | - | Mac OS X >= 10.5 | ppc | gcc 4.0 + 4.2 | - | Mac OS X >= 10.5 | ppc64 | gcc 4.0 + 4.2 | - | Mac OS X >= 10.5 | x86 | gcc 4.0 + 4.2 | - | Mac OS X >= 10.5 | x86_64 | gcc 4.0 + 4.2 | - +-------------------------+--------------+----------------------+ - | MirBSD >= 10uAB | x86 | gcc 4.4.2 | - +-------------------------+--------------+----------------------+ - | NetBSD >= 4.0 | x86 | gcc 4.1.2 prerelease | - +-------------------------+--------------+----------------------+ - | OpenBSD >= 4.6 | x86_64 | gcc 4.2.4 | - +-------------------------+--------------+----------------------+ - | OpenSolaris >= 2009.06 | x86 | | - | OpenSolaris >= 2009.06 | x86_64 | | - +-------------------------+--------------+----------------------+ - | Windows >= XP / cygwin | x86 | | - | Windows >= XP / mingw32 | x86 | | - +-------------------------+--------------+----------------------+ - -Basically, it should run on any POSIX system to which gcc4 has been -ported. If not, please send a bug report. + +--------------------------+--------------+----------------------+---------+ + | OS | Architecture | Compiler | Runtime | + +--------------------------+--------------+----------------------+---------+ + | FreeBSD 8.0 | x86 | | GNU | + +--------------------------+--------------+----------------------+---------+ + | Linux 2.6.* | x86 | gcc 4.4.1 | GNU | + | Linux 2.6.* | x86 | llvm/clang r83252 | GNU | + | Linux 2.6.* | x86_64 | gcc 4.4.1 | GNU | + +--------------------------+--------------+----------------------+---------+ + | iPhone OS 2.2.1 - 3.1.2 | arm | gcc 4.2 | Apple | + | Mac OS X 10.5 | ppc | gcc 4.0 + 4.2 | Apple | + | Mac OS X 10.5 | ppc64 | gcc 4.0 + 4.2 | Apple | + | Mac OS X 10.5 - 10.6 | x86 | gcc 4.0 + 4.2 | Apple | + | Mac OS X 10.5 - 10.6 | x86_64 | gcc 4.0 + 4.2 | Apple | + +--------------------------+--------------+----------------------+---------+ + | MirBSD 10uAB | x86 | gcc 4.4.2 | GNU | + +--------------------------+--------------+----------------------+---------+ + | NetBSD 4.0 | x86 | gcc 4.1.2 prerelease | GNU | + +--------------------------+--------------+----------------------+---------+ + | OpenBSD 4.6 | x86_64 | gcc 4.2.4 | GNU | + +--------------------------+--------------+----------------------+---------+ + | OpenSolaris 2009.06 | x86 | | GNU | + | OpenSolaris 2009.06 | x86_64 | | GNU | + +--------------------------+--------------+----------------------+---------+ + | Windows XP - 7 / cygwin | x86 | | GNU | + | Windows XP - 7 / mingw32 | x86 | | GNU | + +--------------------------+--------------+----------------------+---------+ + +Basically, it should run on any POSIX system to which gcc4 or a recent +clang version has been ported. If not, please send an e-mail with a bug +report. Index: src/OFArray.m ================================================================== --- src/OFArray.m +++ src/OFArray.m @@ -372,11 +372,11 @@ { self = [super init]; array = array_; count = [array_ count]; - mutations = *mutationsPtr_; + mutations = (mutationsPtr_ != NULL ? *mutationsPtr_ : 0); mutationsPtr = mutationsPtr_; return self; } Index: src/OFDictionary.m ================================================================== --- src/OFDictionary.m +++ src/OFDictionary.m @@ -688,11 +688,11 @@ { self = [super init]; data = data_; size = size_; - mutations = *mutationsPtr_; + mutations = (mutationsPtr_ != NULL ? *mutationsPtr_ : 0); mutationsPtr = mutationsPtr_; return self; } Index: src/OFMutableDictionary.m ================================================================== --- src/OFMutableDictionary.m +++ src/OFMutableDictionary.m @@ -59,11 +59,11 @@ /* In case the last bucket is already used */ if (j >= last) { last = data[i]->hash & (newsize - 1); for (j = 0; j < last && - newdata[j] != NULL; i++); + newdata[j] != NULL; j++); } if (j >= last) { [self freeMemory: newdata]; @throw [OFOutOfRangeException Index: tests/objc_sync/test.m ================================================================== --- tests/objc_sync/test.m +++ tests/objc_sync/test.m @@ -43,11 +43,14 @@ main() { lock = [[OFObject alloc] init]; MyThread *t1 = [MyThread threadWithObject: @"A"]; MyThread *t2 = [MyThread threadWithObject: @"B"]; + + [t1 start]; + [t2 start]; [t1 join]; [t2 join]; return 0; }