From 486f720ffbbccd73d5b5a91f0f6dbde6b002aebc Mon Sep 17 00:00:00 2001 From: Luke Gorrie Date: Thu, 12 Apr 2018 14:55:41 +0000 Subject: [PATCH] lj_auditlog.c: Log GCfunc objects referenced by IR constants --- src/lj_auditlog.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/lj_auditlog.c b/src/lj_auditlog.c index 48f2f57ec1..cc2982445b 100644 --- a/src/lj_auditlog.c +++ b/src/lj_auditlog.c @@ -169,8 +169,11 @@ static void log_GCtrace(GCtrace *T) if (ir->o == IR_KGC) { GCobj *o = ir_kgc(ir); /* Log referenced string constants. For e.g. HREFK table keys. */ - if (o->gch.gct == ~LJ_TSTR) { + switch (o->gch.gct) { + case ~LJ_TSTR: + case ~LJ_TFUNC: log_GCobj(o); + break; } } } @@ -188,6 +191,11 @@ static void log_GCstr(GCstr *s) log_mem("GCstr", s, sizeof(*s) + s->len); } +static void log_GCfunc(GCfunc *f) +{ + log_mem("GCfunc", f, sizeof(*f)); +} + static void log_GCobj(GCobj *o) { /* Log some kinds of objects (could be fancier...) */ @@ -201,6 +209,8 @@ static void log_GCobj(GCobj *o) case ~LJ_TSTR: log_GCstr((GCstr *)o); break; + case ~LJ_TFUNC: + log_GCfunc((GCfunc *)o); } }