X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcode%2Fearly-source-location.lisp;h=e7018e31c64efdebf050d48d3b41300cb9f00f93;hb=5d04a95274c9ddaebbcd6ddffc5d646e2c25598c;hp=022af85a17f697736f539c72f7cad3a618cdb39a;hpb=31f072311935e32751508ecf824905c6b58a1d95;p=sbcl.git diff --git a/src/code/early-source-location.lisp b/src/code/early-source-location.lisp index 022af85..e7018e3 100644 --- a/src/code/early-source-location.lisp +++ b/src/code/early-source-location.lisp @@ -12,6 +12,15 @@ (in-package "SB!C") +;;; Used as the CDR of the code coverage instrumentation records +;;; (instead of NIL) to ensure that any well-behaving user code will +;;; not have constants EQUAL to that record. This avoids problems with +;;; the records getting coalesced with non-record conses, which then +;;; get mutated when the instrumentation runs. Note that it's +;;; important for multiple records for the same location to be +;;; coalesced. -- JES, 2008-01-02 +(defconstant +code-coverage-unmarked+ '%code-coverage-unmarked%) + (defvar *source-location-thunks* nil) ;; Should get called only in unusual circumstances. Normally handled