The beginning of a bigger change ?
error: @defs is not supported in new abi
The offending code looks something like this
@interface Foo
{
void *table1_;
}
@endif
static inline BOOL Foo_IsASpecialObject( Foo *self, id p)
{
return( NSHashGet( ((struct { @defs( Foo) } *) self)->table1_, p) != nil);
}
If you find this a little obscure, I once wrote an article about it (look for Using inline functions instead of method calls)
These are all the solutions to this particular problem I came up with:
- don't use the new ABI / abandon platform
- pester ABI maintainer to support @defs
- pester ABI maintainer to support static inline between @interface and @end
- painstakingly create a shadow struct, that mimics the Foo class
- unprotect inline accessed instance variables in Foo with @public