[OpenBIOS] r576 - forth/kernel

svn at openbios.org svn at openbios.org
Fri Aug 24 01:31:44 CEST 2007


Author: wmb
Date: 2007-08-24 01:31:44 +0200 (Fri, 24 Aug 2007)
New Revision: 576

Modified:
   forth/kernel/kernel.fth
Log:
Fixed a longstanding bug that caused misleading error messages when
interpreting from files.  The problem is that the line buffer memory
has been freed and possibly overwritten before the undefined word name
is displayed.  The solution is to copy the word name to a dedicated
buffer.


Modified: forth/kernel/kernel.fth
===================================================================
--- forth/kernel/kernel.fth	2007-08-23 23:28:07 UTC (rev 575)
+++ forth/kernel/kernel.fth	2007-08-23 23:31:44 UTC (rev 576)
@@ -995,9 +995,11 @@
      then
 ;
 headers
+0 value 'error-word
 : .not-found  ( adr len -- )  where  type ."  ?" cr  ;
 \ Abort after an undefined word in interpret state
 : $interpret-do-undefined  ( adr len -- )
+   d# 32 min 'error-word pack  count
    set-abort-message  d# -13 throw
 ;
 \ Compile a surrogate for an undefined word in compile state
@@ -1532,6 +1534,7 @@
    init
    d# 20 alloc-mem  is fake-name-buf
    d# 32 alloc-mem  is canonical-word
+   d# 34 alloc-mem  is 'error-word
 ;
 headers
 




More information about the OpenBIOS mailing list