No prob with size_t and char* I think. They'll nicely solidify to 4 bytes on 32-bit platforms. I'd need to test for maximum though in size_t .len case.
GPL : Not really. Maybe LGPL would do. I want the lib to promote open source and that's it.
GPL : Not really. Maybe LGPL would do. I want the lib to promote open source and that's it.
I mean on 32 bit platform the offset to union tag would be different depending on the struct the union holds, unless I'm missing something
union {
struct {
char* data;
size_t len;
size_t off:8*sizeof(size_t)-TAGBITS, tag:TAGBITS;
} ptr;
struct {
char data[sizeof(BuffetPtr)-2];
uint8_t refcnt;
uint8_t len:8-TAGBITS, tag:TAGBITS;
} sso;
}
where the tag falls into place. I tried an older version on 32 bit and it worked ok.