From 70fec7eb1e6e7cc59196b632d36f83ab1de79678 Mon Sep 17 00:00:00 2001 From: dzaima Date: Sun, 19 Feb 2023 18:30:57 +0200 Subject: [PATCH] =?UTF-8?q?fix=20=E2=80=A2ns.Keys=20on=20namespaces=20with?= =?UTF-8?q?=20unexported=20fields?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/builtins/sysfn.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/builtins/sysfn.c b/src/builtins/sysfn.c index ac4a9a99..d4bdd800 100644 --- a/src/builtins/sysfn.c +++ b/src/builtins/sysfn.c @@ -1114,8 +1114,14 @@ B nKeys_c1(B t, B x) { if (!isNsp(x)) thrM("•ns.Keys: 𝕩 must be a namespace"); NSDesc* desc = c(NS,x)->desc; ux am = desc->varAm; - HArr_p r = m_harr0v(am); - for (ux i = 0; i < am; i++) r.a[i] = incG(gid2str(desc->expGIDs[i])); + ux eam = 0; + PLAINLOOP for (ux i = 0; i < am; i++) if (desc->expGIDs[i]!=-1) eam++; + HArr_p r = m_harr0v(eam); + ux ri = 0; + for (ux i = 0; i < am; i++) { + i32 c = desc->expGIDs[i]; + if (c!=-1) r.a[ri++] = incG(gid2str(c)); + } decG(x); return r.b; }