[Openmcl-cvs-notifications] r16191 - in /release/1.10/source: ./ level-0/l0-hash.lisp lib/pprint.lisp

rme at clozure.com rme at clozure.com
Mon Sep 8 15:11:33 UTC 2014


Author: rme
Date: Mon Sep  8 15:11:33 2014
New Revision: 16191

Log:
Merge from trunk (see ticket:1229)

Modified:
    release/1.10/source/   (props changed)
    release/1.10/source/level-0/l0-hash.lisp
    release/1.10/source/lib/pprint.lisp

Propchange: release/1.10/source/
---------------------------------------------------------------------------=
---
--- svn:mergeinfo	(original)
+++ svn:mergeinfo	Mon Sep  8 15:11:33 2014
@@ -4,4 +4,4 @@
 /branches/rme-logops:13875-13886
 /branches/working-0711/ccl:7970-13192,13197-13198,13202,13208,13214,13235-=
13236,13239,13263,13277-13278,13290,13293-13294,13302-13306,13331-13332,133=
39,13361-13364,13379,13383,13386,13388,13409,13435-13436,13438,13440-13442,=
13460-13461,13465,13467,13476,13487,13490,13492-13493,13502-13528,13545-135=
47,13549,13557-13558
 /release/1.5/source:13667
-/trunk/source:16167,16171,16173,16176-16177,16181-16182,16184-16185
+/trunk/source:16167,16171,16173,16176-16177,16181-16182,16184-16185,16189

Modified: release/1.10/source/level-0/l0-hash.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- release/1.10/source/level-0/l0-hash.lisp	(original)
+++ release/1.10/source/level-0/l0-hash.lisp	Mon Sep  8 15:11:33 2014
@@ -46,7 +46,9 @@
   (declaim (inline %hash-symbol))
   (declaim (inline hash-mod))
   (declaim (inline set-hash-key-conditional set-hash-value-conditional))
-  (declaim (inline hash-lock-free-p lock-free-gethash)))
+  (declaim (inline hash-lock-free-p lock-free-gethash))
+  (declaim (inline invalid-hash-key-p)))
+
 =

 #+eq-hash-monitor
 (progn
@@ -1127,13 +1129,16 @@
      (unlock-hash-table hash nil)
      hash)))
 =

+(defun invalid-hash-key-p (key)
+  ;; Anything else ?
+  (or (eq key free-hash-marker)
+      (eq key deleted-hash-key-marker)))
 =

 (defun puthash (key hash default &optional (value default))
   (declare (optimize (speed 3) (space 0)))
   (unless (typep hash 'hash-table)
     (report-bad-arg hash 'hash-table))
-  (when (or (eq key free-hash-marker)
-            (eq key deleted-hash-key-marker))
+  (when (invalid-hash-key-p key)
     (error "Can't use ~s as a hash-table key" key))
   (when (hash-lock-free-p hash)
     (return-from puthash (lock-free-puthash key hash value)))

Modified: release/1.10/source/lib/pprint.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- release/1.10/source/lib/pprint.lisp	(original)
+++ release/1.10/source/lib/pprint.lisp	Mon Sep  8 15:11:33 2014
@@ -1187,8 +1187,10 @@
 ; if not pretty print a space before dot
 =

 (defun circularity-process (xp object interior-cdr? &aux (not-pretty (not =
*print-pretty*)))
+  (declare (ftype function invalid-hash-key-p))
   (unless (or (numberp object)
 	      (characterp object)
+              (invalid-hash-key-p object)
 	      (and (symbolp object)	;Reader takes care of sharing.
 		   (or (null *print-gensym*) (symbol-package object))))
     (let ((id (gethash object *circularity-hash-table*)))



More information about the Openmcl-cvs-notifications mailing list