Commit Graph

27 Commits

Author SHA1 Message Date
theraven
cec2be9431 Fix double-free when making C++ objects __block 2012-04-03 09:45:26 +00:00
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.
2012-03-11 21:45:08 +00:00
theraven
0f7cc4716a Fix a memory management issue with blocks.
Patch by Jens Alfke!
2012-03-01 19:33:26 +00:00
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.
2011-10-09 19:51:54 +00:00
theraven
55d86bba6c Blocks cleanups. 2011-08-07 15:41:46 +00:00
theraven
3219a530d6 Don't call byref keep / dispose when they don't exist. 2011-07-17 12:35:50 +00:00
theraven
61a7c53a08 Handle NULL arguments to block copy / release. 2011-07-14 21:10:59 +00:00
theraven
d61e9b3209 Fix __weak references to blocks. 2011-07-04 23:27:29 +00:00
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. 2011-07-04 20:58:46 +00:00
theraven
9967d85d60 Fixes to be blocks runtime. Make sure that objects are not prematurely deallocated if referenced by multiple blocks. 2011-06-29 10:41:26 +00:00
theraven
e7767baf50 Don't send retain / release messages in GC mode when copying object pointers into blocks. 2011-05-29 13:50:46 +00:00
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.
2011-05-23 16:24:45 +00:00
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. 2011-02-13 11:18:30 +00:00
theraven
caa4a7253c Some memory management fixes to the blocks runtime. 2011-02-12 22:39:01 +00:00
theraven
4e3cacf997 Comment out some unused variables. 2011-02-12 21:05:41 +00:00
theraven
a83428b883 Move toydispatch into libobjc2.
Some build system tidies.

Add -retain / release to Protocol.

Initial work on clang-specific makefile.
2010-10-26 15:44:43 +00:00
theraven
b5f4782dbf Tidy up the block code slightly. 2010-10-10 21:42:03 +00:00
theraven
786b34875e Removed line that should not have been committed. 2010-10-10 21:38:28 +00:00
theraven
5519421c57 Apparently the BLOCK_HAS_DESCRIPTOR flag now means something else... 2010-10-10 21:35:37 +00:00
theraven
ee32f78b0a Tweaked the GNUmakefile to (more or less) work with gcc.
Fixed block introspection for the new (Apple-compatible) ABI.
2010-10-01 13:11:48 +00:00
theraven
85c07b836e Fix some warnings with -Wextra. 2010-09-26 09:28:04 +00:00
theraven
8e95b6f637 Fix warnings with GCC. Patch by TOM, tweaked to not introduce errors with clang. 2010-09-25 10:52:01 +00:00
theraven
569a48650d Various tidies. 2010-09-09 10:43:42 +00:00
theraven
9c65b1c84c Added types support to blocks runtime, tidied up UNIX98 stuff. 2009-09-11 10:28:49 +00:00
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. 2009-09-10 22:09:03 +00:00
theraven
252447c95f Updated block interface to more closely match Apple's one. Added support for introspectable blocks. 2009-09-10 01:24:25 +00:00
theraven
323e3dfaeb Added new runtime library, based on GCC 4.4 libobjc, libobjc_tr and Objective2.framework. 2009-09-08 16:18:59 +00:00