src/share/vm/runtime/sharedRuntime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File
*** old/src/share/vm/runtime/sharedRuntime.cpp	Tue Dec  9 08:27:26 2008
--- new/src/share/vm/runtime/sharedRuntime.cpp	Tue Dec  9 08:27:26 2008

*** 190,257 **** --- 190,239 ---- return ((jdouble)fmod((double)x,(double)y)); JRT_END JRT_LEAF(jint, SharedRuntime::f2i(jfloat x)) - if (g_isnan(x)) {return 0;} ! jlong lltmp = (jlong)x; jint ltmp = (jint)lltmp; if (ltmp == lltmp) { return ltmp; } else { if (x < 0) { return min_jint; } else { ! return 0; + if (x >= (jfloat) max_jint) return max_jint; } } + if (x <= (jfloat) min_jint) + return min_jint; + return (jint) x; JRT_END JRT_LEAF(jlong, SharedRuntime::f2l(jfloat x)) - if (g_isnan(x)) {return 0;} ! jlong lltmp = (jlong)x; ! if (lltmp != min_jlong) { return lltmp; } else { if (x < 0) { return min_jlong; } else { ! return 0; ! if (x >= (jfloat) max_jlong) return max_jlong; } } + if (x <= (jfloat) min_jlong) + return min_jlong; + return (jlong) x; JRT_END JRT_LEAF(jint, SharedRuntime::d2i(jdouble x)) - if (g_isnan(x)) {return 0;} ! jlong lltmp = (jlong)x; jint ltmp = (jint)lltmp; if (ltmp == lltmp) { return ltmp; } else { if (x < 0) { return min_jint; } else { ! return 0; + if (x >= (jdouble) max_jint) return max_jint; } } + if (x <= (jdouble) min_jint) + return min_jint; + return (jint) x; JRT_END JRT_LEAF(jlong, SharedRuntime::d2l(jdouble x)) - if (g_isnan(x)) {return 0;} ! jlong lltmp = (jlong)x; ! if (lltmp != min_jlong) { return lltmp; } else { if (x < 0) { return min_jlong; } else { ! return 0; ! if (x >= (jdouble) max_jlong) return max_jlong; } } + if (x <= (jdouble) min_jlong) + return min_jlong; + return (jlong) x; JRT_END JRT_LEAF(jfloat, SharedRuntime::d2f(jdouble x)) return (jfloat)x;

src/share/vm/runtime/sharedRuntime.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File