Wouldn't it be better to use this declaration though:
struct RString {
struct RBasic basic;
union {
struct {
long len;
char *ptr;
union {
long capa;
VALUE shared;
} aux;
} heap;
char ary[];
} as;
};
/* apologies if I messed up the syntax here */
#define RSTRING_EMBED_LEN_MAX (sizeof(((RString*)(0))->as) - 1)
Then you can even use the padding the compiler added, if any, plus you can add more things to heap and the embed length will grow automatically.
Comments
Wouldn't it be better to use this declaration though:
Then you can even use the padding the compiler added, if any, plus you can add more things to heap and the embed length will grow automatically.