On Wed, 2023-09-20 at 20:10 +0200, Pablo Neira Ayuso wrote: > On Wed, Sep 20, 2023 at 04:26:04PM +0200, Thomas Haller wrote: > > Flags are not always bad. For example, as a function argument they > > allow > > easier extension in the future. But with datatype's "flags" > > argument and > > enum datatype_flags there are no advantages of this approach. > > > > - replace DTYPE_F_PREFIX with a "bool f_prefix" field. This could > > even > > be a bool:1 bitfield if we cared to represent the information > > with > > one bit only. For now it's not done because that would not help > > reducing > > the size of the struct, so a bitfield is less preferable. > > > > - instead of DTYPE_F_ALLOC, use the refcnt of zero to represent > > static > > instances. Drop this redundant flag. > > Not sure I want to rely on refcnt to zero to identify dynamic > datatypes. I think we need to consolidate datatype_set() to be used > not only where this deals with dynamic datatypes, it might help > improve traceability of datatype assignment. I don't understand. Could you elaborate about datatype_set()? Btw, for dynamically allocated instances the refcnt is always positive, and for static ones it's always zero. The DTYPE_F_ALLOC flag is redundant. Thomas