diff --git a/src/core/symcache.c b/src/core/symcache.c index 841bfbd9..a45e3202 100644 --- a/src/core/symcache.c +++ b/src/core/symcache.c @@ -233,8 +233,8 @@ const uint8_t *janet_symbol_gen(void) { head->length = sizeof(janet_vm.gensym_counter) - 1; head->hash = hash; sym = (uint8_t *)(head->data); - sym[head->length] = 0; memcpy(sym, janet_vm.gensym_counter, sizeof(janet_vm.gensym_counter)); + sym[head->length] = 0; janet_symcache_put((const uint8_t *)sym, bucket); return (const uint8_t *)sym; } diff --git a/test/suite-ev.janet b/test/suite-ev.janet index a696f4ff..e65f2772 100644 --- a/test/suite-ev.janet +++ b/test/suite-ev.janet @@ -366,4 +366,10 @@ (exec-slurp ;run janet "-e" "(print :hi)"))) "exec-slurp 1")) +# valgrind-able check for #1337 +(def superv (ev/chan 10)) +(def f (ev/go |(ev/sleep 1e9) nil superv)) +(ev/cancel f (gensym)) +(ev/take superv) + (end-suite)