diff --git a/collects/tests/racket/foreign-test.rktl b/collects/tests/racket/foreign-test.rktl index 9c46c516ed..b829c4e73b 100644 --- a/collects/tests/racket/foreign-test.rktl +++ b/collects/tests/racket/foreign-test.rktl @@ -374,7 +374,9 @@ added. (foo-test "foo_byte" '(156) (_fun _byte -> _byte)) (foo-test "foo_ubyte" '(156) (_fun _ubyte -> _ubyte)) (foo-test "foo_double" '(81.0) (_fun _double -> _double)) +(foo-test "foo_double" '(81.0f0) (_fun _double -> _double)) (foo-test "foo_float" '(81.0) (_fun _float -> _float)) +(foo-test "foo_float" '(81.0f0) (_fun _float -> _float)) (exit) ;======================================================================= (newline) diff --git a/src/foreign/foreign.c b/src/foreign/foreign.c index b200880583..1ca99144c0 100644 --- a/src/foreign/foreign.c +++ b/src/foreign/foreign.c @@ -674,8 +674,8 @@ Scheme_Object *utf16_pointer_to_ucs4_string(unsigned short *utf) /* Type Name: float * LibFfi type: ffi_type_float * C type: float - * Predicate: SCHEME_FLTP() - * Scheme->C: SCHEME_FLT_VAL() + * Predicate: SCHEME_FLOATP() + * Scheme->C: SCHEME_FLOAT_VAL() * S->C offset: 0 * C->Scheme: scheme_make_float() */ @@ -684,8 +684,8 @@ Scheme_Object *utf16_pointer_to_ucs4_string(unsigned short *utf) /* Type Name: double * LibFfi type: ffi_type_double * C type: double - * Predicate: SCHEME_DBLP() - * Scheme->C: SCHEME_DBL_VAL() + * Predicate: SCHEME_FLOATP() + * Scheme->C: SCHEME_FLOAT_VAL() * S->C offset: 0 * C->Scheme: scheme_make_double() */ @@ -1507,9 +1507,9 @@ static void* SCHEME2C(Scheme_Object *type, void *dst, intptr_t delta, delta += (sizeof(int)-sizeof(float)); } # endif /* SCHEME_BIG_ENDIAN */ - if (SCHEME_FLTP(val)) { + if (SCHEME_FLOATP(val)) { float tmp; - tmp = (float)(SCHEME_FLT_VAL(val)); + tmp = (float)(SCHEME_FLOAT_VAL(val)); (((float*)W_OFFSET(dst,delta))[0]) = tmp; return NULL; } else { scheme_wrong_type("Scheme->C","float",0,1,&(val)); @@ -1522,9 +1522,9 @@ static void* SCHEME2C(Scheme_Object *type, void *dst, intptr_t delta, delta += (sizeof(int)-sizeof(double)); } # endif /* SCHEME_BIG_ENDIAN */ - if (SCHEME_DBLP(val)) { + if (SCHEME_FLOATP(val)) { double tmp; - tmp = (double)(SCHEME_DBL_VAL(val)); + tmp = (double)(SCHEME_FLOAT_VAL(val)); (((double*)W_OFFSET(dst,delta))[0]) = tmp; return NULL; } else { scheme_wrong_type("Scheme->C","double",0,1,&(val)); diff --git a/src/foreign/foreign.rktc b/src/foreign/foreign.rktc index 8c0d31e1b9..9ecbca6c96 100755 --- a/src/foreign/foreign.rktc +++ b/src/foreign/foreign.rktc @@ -640,9 +640,9 @@ Scheme_Object *utf16_pointer_to_ucs4_string(unsigned short *utf) @(defctype* '(ufixnum "umzintptr") "uintptr_t" "INT" "UINT" "integer_from_unsigned") -@(defctype* 'float "float" "FLT" "FLT" "float") +@(defctype* 'float "float" "FLOAT" "FLOAT" "float") -@(defctype* 'double "double" "DBL" "DBL" "double") +@(defctype* 'double "double" "FLOAT" "FLOAT" "double") @; @; Not useful? not implemented in any case. @; (defctype* 'longdouble "long double" ...???...)