Let us say that the datum of type Datum contains a Jsonb* type.
Then after the call
Jsonb *jb = DatumGetJsonb(datum);
the jb might point to a palloc'ed structure, in case detoasting took place. So the question is if this is the right way to free up the memory after checking that the jb was detoasted?
if ((void *)jb != DatumGetPointer(datum))
pfree(jb); // free if detoasted