gnustep-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Problems with a custom constant string class


From: Helge Hess
Subject: Re: Problems with a custom constant string class
Date: Mon, 6 Aug 2007 00:47:30 +0200

On 06.08.2007, at 00:37, Vincent Geddes wrote:
I am experimenting with Objective-C, and I am trying to create some custom string classes.

The problem is that the gcc '-fconstant-string-class' option only seems to allow custom classes which subclass `Object' (in the GNU runtime).

Thats definitely wrong, the class doesn't matter (in both, gstep-base and libFoundation NSConstantString inherits from NSObject, not Object).

The thing which _is_ required (for rather obvious reasons?) is the constant ivar layout, which is
  - Class isa;
  - uchar *; // string
  - uint;    // length

gcc keeps on giving me the error `interface 'GooConstantString' does not have valid constant string layout' if I subclass anything other than `Object'.

Well, its because the ivar layout doesn't match the required constant one?!

Interfaces:
@interface GooObject
...
@end
@interface GooString : GooObject
...
@end
@interface GooConstantString : GooString
{
  Class isa;
  char *c_string;
  unsigned int len;
}
@end

Well, you don't give the ivar layout of your hierarchy (...?). Eg that GooConstantString has an 'isa' ivar looks utterly wrong given that any object needs to have an isa pointer (=> it has to be in your root class). Maybe removing the 'isa' does the trick?

Greets,
  Helge
--
Helge Hess
http://www.helgehess.eu/






reply via email to

[Prev in Thread] Current Thread [Next in Thread]