Merge branch 'master' of git.racket-lang.org:plt
This commit is contained in:
commit
5b97a0d6d2
|
@ -533,6 +533,8 @@
|
|||
;; Avoid printign hash-table argument, which implicitly uses `ref':
|
||||
(let ([got (apply proc args)])
|
||||
(test #t (format "~s ~s ~s" proc val got) (equal? val got))))])
|
||||
(test #f hash-iterate-first h1)
|
||||
(test #f hash-iterate-first h2)
|
||||
(test #f hash-ref h1 'key #f)
|
||||
(test '(#f #f #f #f #f #f) list get-k get-v set-k set-v remove-k access-k)
|
||||
(test 'nope hash-ref h2 'key 'nope)
|
||||
|
@ -540,6 +542,9 @@
|
|||
(set! get-k #f)
|
||||
(test (void) hash-set! h1 'key 'val)
|
||||
(test '(#f #f #f #f #f #f) list get-k get-v set-k set-v remove-k access-k)
|
||||
(test #f not (hash-iterate-first h1))
|
||||
(test #f not (hash-iterate-first h2))
|
||||
(test #f hash-iterate-next h2 (hash-iterate-first h2))
|
||||
(test 'val hash-ref h1 'key #f)
|
||||
(test '(#f #f #f #f #f #f) list get-k get-v set-k set-v remove-k access-k)
|
||||
(test 'val hash-ref h2 'key #f)
|
||||
|
@ -723,4 +728,10 @@
|
|||
|
||||
;; ----------------------------------------
|
||||
|
||||
(test #t equal?
|
||||
(chaperone-procedure add1 void)
|
||||
(chaperone-procedure add1 void))
|
||||
|
||||
;; ----------------------------------------
|
||||
|
||||
(report-errs)
|
||||
|
|
|
@ -2397,11 +2397,16 @@ static Scheme_Object *hash_table_for_each(int argc, Scheme_Object *argv[])
|
|||
|
||||
static Scheme_Object *hash_table_next(const char *name, int start, int argc, Scheme_Object *argv[])
|
||||
{
|
||||
if (SCHEME_HASHTP(argv[0])) {
|
||||
Scheme_Object *o = argv[0];
|
||||
|
||||
if (SCHEME_NP_CHAPERONEP(o))
|
||||
o = SCHEME_CHAPERONE_VAL(o);
|
||||
|
||||
if (SCHEME_HASHTP(o)) {
|
||||
Scheme_Hash_Table *hash;
|
||||
int i, sz;
|
||||
|
||||
hash = (Scheme_Hash_Table *)argv[0];
|
||||
hash = (Scheme_Hash_Table *)o;
|
||||
|
||||
sz = hash->size;
|
||||
if (start >= 0) {
|
||||
|
@ -2414,21 +2419,21 @@ static Scheme_Object *hash_table_next(const char *name, int start, int argc, Sch
|
|||
}
|
||||
|
||||
return scheme_false;
|
||||
} else if (SCHEME_HASHTRP(argv[0])) {
|
||||
} else if (SCHEME_HASHTRP(o)) {
|
||||
int v;
|
||||
v = scheme_hash_tree_next((Scheme_Hash_Tree *)argv[0], start);
|
||||
v = scheme_hash_tree_next((Scheme_Hash_Tree *)o, start);
|
||||
if (v == -1)
|
||||
return scheme_false;
|
||||
else if (v == -2)
|
||||
return NULL;
|
||||
else
|
||||
return scheme_make_integer(v);
|
||||
} else if (SCHEME_BUCKTP(argv[0])) {
|
||||
} else if (SCHEME_BUCKTP(o)) {
|
||||
Scheme_Bucket_Table *hash;
|
||||
Scheme_Bucket *bucket;
|
||||
int i, sz;
|
||||
|
||||
hash = (Scheme_Bucket_Table *)argv[0];
|
||||
hash = (Scheme_Bucket_Table *)o;
|
||||
|
||||
sz = hash->size;
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user