[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/pr
From: |
Thomas Davie |
Subject: |
Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support |
Date: |
Tue, 22 Jun 2010 11:06:53 +0100 |
On 22 Jun 2010, at 10:56, David Chisnall wrote:
> On 22 Jun 2010, at 10:51, Thomas Davie wrote:
>
>> The only problem I have remaining is that it appears that nowhere in
>> Foundation.h is blocks_runtime.h ever imported. The result is that in my
>> code, Block_copy and friends are inaccessible. I don't know where the
>> appropriate place to include this is, could you add it in the right place
>> and commit again?
>
> Richard, I think this one's for you...
>
> We only need to bother including blocks_runtime.h when using clang, since GCC
> doesn't support blocks, so we can wrap it in a __has_include() test, but we
> should probably also wrap it in a __has_feature() test to make sure we are
> compiling with -fblocks (I'm not sure what happens if you include that header
> without blocks support).
>
> How are we currently deciding whether to import the libobjc2 or ObjectiveC2
> headers in Foundation? I've not really checked, but we should be doing this
> the same way...
Hi David,
Some further testing (manually including blocks_runtime.h) reveals that there's
still some problems, inserting a block into a collection appears to cause a
segfault:
#include "blocks_runtime.h"
#include <Foundation/Foundation.h>
int main (int argc, char ** argv)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSLog(@"a");
NSMutableArray *blockArray = [NSMutableArray array];
NSLog(@"b");
NSString *(^block)(int x) = ^(int x) { return [NSString
stringWithFormat:@"Test %d", x]; };
NSLog(@"c");
NSString *(^block1)(int x) = Block_copy(block);
NSLog(@"d");
[blockArray addObject:block1];
NSLog(@"e");
NSString *(^block2)(int arg) = [blockArray objectAtIndex:0];
NSLog(@"f");
NSLog(@"%@", block(4));
NSLog(@"%@", block2(5));
[pool release];
return 1;
}
This logs a,b,c,d, and then Seg Faults.
Tom Davie
- Re: Further problems trying to build GNUstep with blocks/properties support, (continued)
- Re: Further problems trying to build GNUstep with blocks/properties support, David Chisnall, 2010/06/21
- Re: Further problems trying to build GNUstep with blocks/properties support, Thomas Davie, 2010/06/21
- Re: Further problems trying to build GNUstep with blocks/properties support, David Chisnall, 2010/06/21
- Re: Further problems trying to build GNUstep with blocks/properties support, Thomas Davie, 2010/06/21
- [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, Thomas Davie, 2010/06/21
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, David Chisnall, 2010/06/21
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, Thomas Davie, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, David Chisnall, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, Thomas Davie, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, David Chisnall, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support,
Thomas Davie <=
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, David Chisnall, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, Richard Frith-Macdonald, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, Thomas Davie, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, Richard Frith-Macdonald, 2010/06/22
- Re: [SOLVED] Re: Further problems trying to build GNUstep with blocks/properties support, Thomas Davie, 2010/06/22