29 Commits (f569aeb42b8288503ab517eabe3c6f6cdc7b92d0)

Author SHA1 Message Date
David Chisnall 6451d35e92 Fix block refcounts to use saturating arithmetic. 8 years ago
Zenny Chen 5f01917a49 Update blocks_runtime.h (#45)
Update blocks_runtime.h to be compatible with Apple / LLVM version.
8 years ago
theraven cec2be9431 Fix double-free when making C++ objects __block 14 years ago
thebeing f845df37c1 Add objc/blocks_private.h header to expose some internals of the blocks runtime
that are accessed by libdispatch. Also rename the relevant structs to be
compatible with the BlocksRuntime from compiler-rt.
14 years ago
theraven 0f7cc4716a Fix a memory management issue with blocks.
Patch by Jens Alfke!
14 years ago
theraven 43ee8b9819 Add initial support for imp_implementationWithBlock() and friends. Currently
only works on x86 and x86-64 and doesn't work with sret functions.
14 years ago
theraven 55d86bba6c Blocks cleanups. 15 years ago
theraven 3219a530d6 Don't call byref keep / dispose when they don't exist. 15 years ago
theraven 61a7c53a08 Handle NULL arguments to block copy / release. 15 years ago
theraven d61e9b3209 Fix __weak references to blocks. 15 years ago
theraven 663995f08c Small cleanup. Use the ARC functions for retain / release / autorelease messages everywhere. This will make properties faster if we're using an ARC-compatible NSObject. 15 years ago
theraven 9967d85d60 Fixes to be blocks runtime. Make sure that objects are not prematurely deallocated if referenced by multiple blocks. 15 years ago
theraven e7767baf50 Don't send retain / release messages in GC mode when copying object pointers into blocks. 15 years ago
theraven 9dcc66f7f6 Make sure that associated objects and blocks use GC-scanned memory in GC mode.
Blocks do not yet support __weak bound variables.  This needs fixing before the release.
15 years ago
theraven ff915fc373 Added a really ugly hack to work around the painfully broken register allocator in GCC that caused the compiler to crash when attempting to compile blocks_runtime.m. 15 years ago
theraven caa4a7253c Some memory management fixes to the blocks runtime. 15 years ago
theraven 4e3cacf997 Comment out some unused variables. 15 years ago
theraven a83428b883 Move toydispatch into libobjc2.
Some build system tidies.

Add -retain / release to Protocol.

Initial work on clang-specific makefile.
15 years ago
theraven b5f4782dbf Tidy up the block code slightly. 15 years ago
theraven 786b34875e Removed line that should not have been committed. 15 years ago
theraven 5519421c57 Apparently the BLOCK_HAS_DESCRIPTOR flag now means something else... 15 years ago
theraven ee32f78b0a Tweaked the GNUmakefile to (more or less) work with gcc.
Fixed block introspection for the new (Apple-compatible) ABI.
16 years ago
theraven 85c07b836e Fix some warnings with -Wextra. 16 years ago
theraven 8e95b6f637 Fix warnings with GCC. Patch by TOM, tweaked to not introduce errors with clang. 16 years ago
theraven 569a48650d Various tidies. 16 years ago
theraven 9c65b1c84c Added types support to blocks runtime, tidied up UNIX98 stuff. 17 years ago
theraven bba507bf70 Removed incorrect comment from blocks runtime. Tweaked runtime.h to make it show the new functions even in GNU-compat mode and made sure the object-substitution hook is called even when object substitution can't be used, so GNUstep can use it for the 10.5 NSObject runtime functions. 17 years ago
theraven 252447c95f Updated block interface to more closely match Apple's one. Added support for introspectable blocks. 17 years ago
theraven 323e3dfaeb Added new runtime library, based on GCC 4.4 libobjc, libobjc_tr and Objective2.framework. 17 years ago