Jacek Caban : jscript: Get rid of ret_nan hack.

Alexandre Julliard julliard at winehq.org
Tue May 29 13:58:03 CDT 2012


Module: wine
Branch: master
Commit: d0a719a79dae001df341db907fcae54118691d35
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d0a719a79dae001df341db907fcae54118691d35

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Tue May 29 12:53:55 2012 +0200

jscript: Get rid of ret_nan hack.

---

 dlls/jscript/date.c    |   28 ++++++++++++++--------------
 dlls/jscript/error.c   |    3 ++-
 dlls/jscript/global.c  |    2 +-
 dlls/jscript/jscript.h |    7 -------
 dlls/jscript/jsutils.c |    6 +++---
 dlls/jscript/lex.c     |    2 +-
 6 files changed, 21 insertions(+), 27 deletions(-)

diff --git a/dlls/jscript/date.c b/dlls/jscript/date.c
index d9c0d39..6bcf9c1 100644
--- a/dlls/jscript/date.c
+++ b/dlls/jscript/date.c
@@ -130,7 +130,7 @@ static inline DOUBLE days_in_year(DOUBLE year)
     int y;
 
     if(year != (int)year)
-        return ret_nan();
+        return NAN;
 
     y = year;
     if(y%4 != 0) return 365;
@@ -143,7 +143,7 @@ static inline DOUBLE days_in_year(DOUBLE year)
 static inline DOUBLE day_from_year(DOUBLE year)
 {
     if(year != (int)year)
-        return ret_nan();
+        return NAN;
 
     return floor(365.0*(year-1970) + floor((year-1969)/4)
         - floor((year-1901)/100) + floor((year-1601)/400));
@@ -192,7 +192,7 @@ static inline DOUBLE year_from_time(DOUBLE time)
     int y;
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     y = 1970 + time/365.25/MS_PER_DAY;
 
@@ -225,7 +225,7 @@ static inline DOUBLE month_from_time(DOUBLE time)
     int dwy = day_within_year(time);
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     if(0<=dwy && dwy<31) return 0;
     if(dwy < 59+ily) return 1;
@@ -249,7 +249,7 @@ static inline DOUBLE date_from_time(DOUBLE time)
     int mft = month_from_time(time);
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     if(mft==0) return dwy+1;
     if(mft==1) return dwy-30;
@@ -271,7 +271,7 @@ static inline DOUBLE week_day(DOUBLE time)
     DOUBLE ret;
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     ret = fmod(day(time)+4, 7);
     if(ret<0) ret += 7;
@@ -285,7 +285,7 @@ static inline DOUBLE convert_time(int year, SYSTEMTIME st)
     int set_week_day;
 
     if(st.wMonth == 0)
-        return ret_nan();
+        return NAN;
 
     if(st.wYear != 0)
         year = st.wYear;
@@ -359,7 +359,7 @@ static inline DOUBLE hour_from_time(DOUBLE time)
     DOUBLE ret;
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     ret = fmod(floor(time/MS_PER_HOUR), 24);
     if(ret<0) ret += 24;
@@ -373,7 +373,7 @@ static inline DOUBLE min_from_time(DOUBLE time)
     DOUBLE ret;
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     ret = fmod(floor(time/MS_PER_MINUTE), 60);
     if(ret<0) ret += 60;
@@ -387,7 +387,7 @@ static inline DOUBLE sec_from_time(DOUBLE time)
     DOUBLE ret;
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     ret = fmod(floor(time/1000), 60);
     if(ret<0) ret += 60;
@@ -401,7 +401,7 @@ static inline DOUBLE ms_from_time(DOUBLE time)
     DOUBLE ret;
 
     if(isnan(time))
-        return ret_nan();
+        return NAN;
 
     ret = fmod(time, 1000);
     if(ret<0) ret += 1000;
@@ -443,7 +443,7 @@ static inline DOUBLE make_date(DOUBLE day, DOUBLE time)
 static inline DOUBLE time_clip(DOUBLE time)
 {
     if(8.64e15 < time || time < -8.64e15) {
-        return ret_nan();
+        return NAN;
     }
 
     return floor(time);
@@ -2169,7 +2169,7 @@ static inline HRESULT date_parse(BSTR input, double *ret) {
         else if(input[i] == ')') {
             nest_level--;
             if(nest_level<0) {
-                *ret = ret_nan();
+                *ret = NAN;
                 return S_OK;
             }
         }
@@ -2393,7 +2393,7 @@ static inline HRESULT date_parse(BSTR input, double *ret) {
         if(set_hour_adjust)
             *ret = utc(*ret, &di);
     }else {
-        *ret = ret_nan();
+        *ret = NAN;
     }
 
     for(i=0; i<sizeof(string_ids)/sizeof(DWORD); i++)
diff --git a/dlls/jscript/error.c b/dlls/jscript/error.c
index d242ce3..00560db 100644
--- a/dlls/jscript/error.c
+++ b/dlls/jscript/error.c
@@ -15,6 +15,7 @@
  * License along with this library; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
+
 #include "config.h"
 #include "wine/port.h"
 
@@ -238,7 +239,7 @@ static HRESULT error_constr(script_ctx_t *ctx, WORD flags, DISPPARAMS *dp,
 
         hres = to_number(ctx, get_arg(dp, 0), ei, &n);
         if(FAILED(hres)) /* FIXME: really? */
-            n = ret_nan();
+            n = NAN;
         if(isnan(n))
             hres = to_string(ctx, get_arg(dp, 0), ei, &msg);
         if(FAILED(hres))
diff --git a/dlls/jscript/global.c b/dlls/jscript/global.c
index 63239c8..3fb169b 100644
--- a/dlls/jscript/global.c
+++ b/dlls/jscript/global.c
@@ -511,7 +511,7 @@ static HRESULT JSGlobal_parseInt(script_ctx_t *ctx, vdisp_t *jsthis, WORD flags,
             i = char_to_int(*ptr++);
         }while(i < radix);
     }else if(empty) {
-        ret = ret_nan();
+        ret = NAN;
     }
 
     SysFreeString(str);
diff --git a/dlls/jscript/jscript.h b/dlls/jscript/jscript.h
index dcdd143..c53e1a4 100644
--- a/dlls/jscript/jscript.h
+++ b/dlls/jscript/jscript.h
@@ -445,13 +445,6 @@ static inline void num_set_nan(VARIANT *v)
 #endif
 }
 
-static inline DOUBLE ret_nan(void)
-{
-    VARIANT v;
-    num_set_nan(&v);
-    return V_R8(&v);
-}
-
 static inline void num_set_inf(VARIANT *v, BOOL positive)
 {
     V_VT(v) = VT_R8;
diff --git a/dlls/jscript/jsutils.c b/dlls/jscript/jsutils.c
index d19d71b..6a36613 100644
--- a/dlls/jscript/jsutils.c
+++ b/dlls/jscript/jsutils.c
@@ -349,7 +349,7 @@ static HRESULT str_to_number(BSTR str, double *ret)
             ptr++;
 
         if(*ptr)
-            *ret = ret_nan();
+            *ret = NAN;
         else
             *ret = neg ? -ret_inf() : ret_inf();
         return S_OK;
@@ -403,7 +403,7 @@ static HRESULT str_to_number(BSTR str, double *ret)
         ptr++;
 
     if(*ptr) {
-        *ret = ret_nan();
+        *ret = NAN;
         return S_OK;
     }
 
@@ -419,7 +419,7 @@ HRESULT to_number(script_ctx_t *ctx, VARIANT *v, jsexcept_t *ei, double *ret)
 {
     switch(V_VT(v)) {
     case VT_EMPTY:
-        *ret = ret_nan();
+        *ret = NAN;
         break;
     case VT_NULL:
         *ret = 0;
diff --git a/dlls/jscript/lex.c b/dlls/jscript/lex.c
index 6842b58..022c06e 100644
--- a/dlls/jscript/lex.c
+++ b/dlls/jscript/lex.c
@@ -933,7 +933,7 @@ static int cc_token(parser_ctx_t *ctx, void *lval)
     var = find_cc_var(ctx->script->cc, ctx->ptr, id_len);
     ctx->ptr += id_len;
     if(!var || var->is_num) {
-        *(literal_t**)lval = new_double_literal(ctx, var ? var->u.n : ret_nan());
+        *(literal_t**)lval = new_double_literal(ctx, var ? var->u.n : NAN);
         return tNumericLiteral;
     }
 




More information about the wine-cvs mailing list