﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	difficulty
1293	Locatives get moved around causing hash tables to lose them	sjamaan		"As [[http://paste.call-cc.org/paste?id=982e393227789ab1a6c471ada66e729eb28f83b8|pointed out by John Croisant]]:

{{{#!scm

;; Even though the filler slots are not used, if you remove any of
;; them, the hash of the instance will change after GC, causing the
;; hash table lookup to fail.

(use srfi-69 lolevel)

(define table (make-hash-table test: eq? hash: eq?-hash))

(define-record-type box
  (make-box contents)
  box?
  ;; Remove or comment out any of the next three lines:
  (filler1  box-filler1)
  (filler2  box-filler2)
  (filler3  box-filler3)
  (contents box-contents))

(define my-box (make-box (make-locative ""foo"")))

(hash-table-set! table my-box #t)

(printf ""before gc, hash table contains ~S? ~S~N""
        my-box
        (hash-table-exists? table my-box))

(gc)

(printf ""after gc,  hash table contains ~S? ~S~N""
        my-box
        (hash-table-exists? table my-box))

(printf ""hash table as alist: ~S~N""
        (hash-table->alist table))
}}}"	defect	new	major	4.12.0	core libraries	4.10.x		srfi-69, hash tables, locatives		
