diff --git a/racket/src/racket/src/hash.c b/racket/src/racket/src/hash.c index c63dfd21ea..2a846d72bb 100644 --- a/racket/src/racket/src/hash.c +++ b/racket/src/racket/src/hash.c @@ -1204,6 +1204,9 @@ XFORM_NONGCING static uintptr_t fast_equal_hash_key(Scheme_Object *o, uintptr_t } #ifdef MZ_USE_SINGLE_FLOATS case scheme_float_type: + { + return k + dbl_hash_val(SCHEME_FLT_VAL(o)); + } #endif case scheme_double_type: { @@ -1727,10 +1730,13 @@ XFORM_NONGCING static uintptr_t fast_equal_hash_key2(Scheme_Object *o, int *_don return t - SCHEME_INT_VAL(o); #ifdef MZ_USE_SINGLE_FLOATS case scheme_float_type: + { + return dbl_hash2_val(SCHEME_FLT_VAL(o)); + } #endif case scheme_double_type: { - return dbl_hash2_val(SCHEME_FLOAT_VAL(o)); + return dbl_hash2_val(SCHEME_DBL_VAL(o)); } #ifdef MZ_LONG_DOUBLE case scheme_long_double_type: diff --git a/racket/src/racket/src/print.c b/racket/src/racket/src/print.c index 002f9412ab..bf89561d01 100644 --- a/racket/src/racket/src/print.c +++ b/racket/src/racket/src/print.c @@ -1446,6 +1446,7 @@ static int compare_keys(const void *a, const void *b) || SCHEME_CHAR_STRINGP(v) \ || SCHEME_BYTE_STRINGP(v) \ || SCHEME_CHARP(v) \ + || SCHEME_NUMBERP(v) \ || SAME_TYPE(SCHEME_TYPE(v), scheme_module_index_type)) av = ((Scheme_Object **)a)[0]; bv = ((Scheme_Object **)b)[0];