X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fdata.h;h=9f41936429df67418ea2e271f36e08207000e7a5;hp=6ab34905f7e62e4d10e1ddedcc26139593b245b0;hb=b1c7c64ca1d1d9dc79a59c0f612bd07e7a997a60;hpb=2d34b0c215608bc3eae007ce5f4e80eae3c1e147 diff --git a/src/data.h b/src/data.h index 6ab3490..9f41936 100644 --- a/src/data.h +++ b/src/data.h @@ -95,7 +95,15 @@ struct psi_dump { union psi_dump_arg ctx; psi_dump_cb fun; }; -#define PSI_DUMP(dump, ...) (dump)->fun((dump)->ctx, __VA_ARGS__) +#define PSI_DUMP(dump, ...) do { \ + struct psi_dump _dump_tmp, *_dump_ptr = dump; \ + if (!_dump_ptr) { \ + _dump_ptr = &_dump_tmp; \ + _dump_tmp.ctx.fd = STDOUT_FILENO; \ + _dump_tmp.fun = (psi_dump_cb) dprintf; \ + } \ + _dump_ptr->fun(_dump_ptr->ctx, __VA_ARGS__); \ +} while(0) #define PSI_DATA(D) ((struct psi_data *) (D))