From f1fcd12ed31298f916f8c8f0c51170c8ee3416ec Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Sun, 18 Aug 1991 23:33:20 +0000 Subject: [PATCH] Fix typo. Use typed errors. --- v7/src/runtime/hash.scm | 65 +++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 31 deletions(-) diff --git a/v7/src/runtime/hash.scm b/v7/src/runtime/hash.scm index 934b0813a..aa8b5b83f 100644 --- a/v7/src/runtime/hash.scm +++ b/v7/src/runtime/hash.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/hash.scm,v 14.3 1991/08/16 15:40:17 jinx Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/hash.scm,v 14.4 1991/08/18 23:33:20 cph Exp $ Copyright (c) 1988-91 Massachusetts Institute of Technology @@ -135,32 +135,29 @@ MIT in each case. |# (if (eq? x false) 0 (object-hash x - (if (default-object? table) - default-hash-table - table) + (if (default-object? table) default-hash-table table) true))) (define (unhash n #!optional table) (if (zero? n) false - (let ((table (if (default-object? table) - default-hash-table - table))) - (or (object-unhash n table) - (error "unhash: Not a valid hash number" n table))))) + (let ((object + (object-unhash n + (if (default-object? table) + default-hash-table + table)))) + (if (not object) + (error:bad-range-argument n 'UNHASH)) + object))) (define (valid-hash-number? n #!optional table) (or (zero? n) - (object-unhash n (if (default-object? table) - default-hash-table - table)))) + (object-unhash n (if (default-object? table) default-hash-table table)))) -(define (object-hashed? n #!optional table) +(define (object-hashed? x #!optional table) (or (eq? x false) (object-hash x - (if (default-object? table) - default-hash-table - table) + (if (default-object? table) default-hash-table table) false))) ;;; This is not dangerous because assq is a primitive and does not @@ -171,14 +168,16 @@ MIT in each case. |# ;;; compiled, but can lose if it is interpreted. (define (object-hash object #!optional table insert?) - (let ((table (cond ((default-object? table) - default-hash-table) - ((hash-table? table) - table) - (else - (error "object-hash: Not a hash table" table)))) - (insert? (or (default-object? insert?) - insert?))) + (let ((table + (if (default-object? table) + default-hash-table + (begin + (if (not (hash-table? table)) + (error:wrong-type-argument table + "object-hash table" + 'OBJECT-HASH)) + table))) + (insert? (or (default-object? insert?) insert?))) (with-absolutely-no-interrupts (lambda () (let* ((hash-index (fix:+ 1 @@ -206,7 +205,8 @@ MIT in each case. |# hash-index (cons pair bucket)) (set-cdr! unhash-bucket - (cons (object-new-type (ucode-type weak-cons) pair) + (cons (object-new-type (ucode-type weak-cons) + pair) (cdr unhash-bucket))) result))))))))) @@ -215,12 +215,15 @@ MIT in each case. |# ;;; daemon will not splice that bucket. (define (object-unhash number #!optional table) - (let* ((table (cond ((default-object? table) - default-hash-table) - ((hash-table? table) - table) - (else - (error "object-hash: Not a hash table" table)))) + (let* ((table + (if (default-object? table) + default-hash-table + (begin + (if (not (hash-table? table)) + (error:wrong-type-argument table + "object-hash table" + 'OBJECT-UNHASH)) + table))) (index (modulo number (hash-table/size table)))) (with-absolutely-no-interrupts (lambda () -- 2.25.1