Thank you Nicola, with the last week's snapshot it seems to work.
Stefan
On 2002-09-19 12:11:17 +0200 Nicola Pero <[EMAIL PROTECTED]> wrote:
>
> Hi Stefan,
>
> this is a bug in the compiler ... all GCC ObjC compilers have it ...
> except GCC 3.3 from CVS because I fixed it on GCC CVS one week ago :-)
>
> The bug can be summarized shortly: objects created using @protocol() will
> always crash when you send a message to them, unless a class implementing
> that protocol is compiled in the same compilation unit.
>
> So a workaround for older compilers is to add
>
> @interface FakeClass <NSObject>
> @end
>
> @implementation FakeClass
> @end
>
> to your ObjC code.
>
> GCC >= 3.3 does not have this problem.
>
>> Hi,
>>
>> I get segfault when sending a message to a protocol. [snip]
>>
>> Here is bactrace:
>>
>> #0 0x4023ec6f in objc_msg_lookup () from /usr/local/lib/libobjc.so.1
>> #1 0x080488ec in gnustep_base_user_main (argc=1, argv=0xbffff324) at test.m:16
>> #2 0x40148859 in main ()
>> from
>/usr/GNUstep/System/Libraries/ix86/linux-gnu/gnu-gnu-gnu/libgnustep-base.so.1
>> #3 0x4034714f in __libc_start_main () from /lib/libc.so.6
>>
>> And here is an example that will crash:
>>
>> ----
>>
>> #import <Foundation/NSAutoreleasePool.h>
>> #import <Foundation/NSObject.h>
>> #import <Foundation/NSString.h>
>>
>> int main(int argc, const char **argv)
>> {
>> NSAutoreleasePool *pool;
>> Protocol *p;
>>
>> pool = [NSAutoreleasePool new];
>>
>> p = @protocol(NSObject);
>> NSLog(@"Protocol test %p",p);
>> /* Crash here ...*/
>> NSLog(@"Description %p",[p descriptionForInstanceMethod:@selector(class)]);
>>
>> RELEASE(pool);
>>
>> return 0;
>> }
>>
>> ----
>>
>> Whan should be wrong?
>>
>> Thank you,
>>
>> Stefan
>>
>>
>>
>> _______________________________________________
>> Bug-gnustep mailing list
>> [EMAIL PROTECTED]
>> http://mail.gnu.org/mailman/listinfo/bug-gnustep
>>
>
>
>
--
http://urbanek.host.sk
_______________________________________________
Bug-gnustep mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-gnustep