diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 6e39f02e15..0896d4c971 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -1,12 +1,13 @@ + 0.87: +- thrown_* vars are not gc roots +- "ker" C+u: for a moment, full vocab list is shown - : foo \ each reload foo ; foo eventually crashes - list usability - popup: -- close button - popup: -- pin button - some module operations don't work on module-links - modules: core/ libs/ apps/ -- xml: "" string>xml miscompiles - top level window positioning on ms windows - scroll>rect broken if there are gadgets in between - completion is not ideal: eg, C+e "buttons" @@ -16,7 +17,6 @@ - callback scheduling issue - httpd crash - fep when closing window - - : foo "ppc" make-image stdio get duplex-stream-out pane-stream-pane pane-clear foo ; foo - these things are "Too Slow": - all-words - make-image diff --git a/vm/types.c b/vm/types.c index 1d0320b6dc..277894136a 100644 --- a/vm/types.c +++ b/vm/types.c @@ -381,7 +381,11 @@ void update_xt(F_WORD* word) /* ( name vocabulary -- word ) */ F_WORD *allot_word(CELL vocab, CELL name) { + REGISTER_ROOT(vocab); + REGISTER_ROOT(name); F_WORD *word = allot_object(WORD_TYPE,sizeof(F_WORD)); + UNREGISTER_ROOT(name); + UNREGISTER_ROOT(vocab); word->hashcode = tag_fixnum(rand()); word->vocabulary = vocab; word->name = name;