gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/array.cpp server/as_valu...


From: Benjamin Wolsey
Subject: [Gnash-commit] gnash ChangeLog server/array.cpp server/as_valu...
Date: Sat, 17 May 2008 10:47:25 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Benjamin Wolsey <bwy>   08/05/17 10:47:17

Modified files:
        .              : ChangeLog 
        server         : array.cpp as_value.h as_value.cpp character.cpp 
                         edit_text_character.cpp matrix.cpp resource.h 
                         sprite_instance.cpp types.cpp 
        libbase        : utility.cpp utility.h 
        server/asobj   : Global.cpp 
        server/asobj/flash/geom: Point_as.cpp Rectangle_as.cpp 
        testsuite/server: AsValueTest.cpp 

Log message:
                * libbase/utility.h: add inline bool utility::isFinite() to 
replace
                  use of non-portable and non-standard isfinite in the code. 
Drop
                  define of isfinite. Moved infinite_to_fzero under 
gnash::utility
                  namespace. Please make any portability fixes here and *not*
                  anywhere else.
                * libbase/utility.cpp: drop dead include.
                * server/array.cpp: replace isfinite.
                * server/as_value.cpp: replace isfinite.
                * server/as_value.h: drop second define of isfinite.
                * server/character.cpp: drop using namespace std; (was for 
isfinite),
                  replace isfinite.
                * server/edit_text_character.cpp: update infinite_to_fzero 
namespace.
                * server/matrix.cpp: drop another define of isfinite, drop using
                  namespace std;, replace isfinite.
                * server/resource.h: drop yet another define of isfinite.
                * server/sprite_instance.cpp: replace isfinite.
                * server/types.cpp: another define of isfinite...
                * server/asobj/Global.cpp: replace isfinite
                * server/asobj/flash/geom/{Point,Rectangle}_as.cpp: replace 
isfinite.
                * testsuite/server/AsValueTest.cpp: replace isfinite.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6631&r2=1.6632
http://cvs.savannah.gnu.org/viewcvs/gnash/server/array.cpp?cvsroot=gnash&r1=1.105&r2=1.106
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.h?cvsroot=gnash&r1=1.91&r2=1.92
http://cvs.savannah.gnu.org/viewcvs/gnash/server/as_value.cpp?cvsroot=gnash&r1=1.133&r2=1.134
http://cvs.savannah.gnu.org/viewcvs/gnash/server/character.cpp?cvsroot=gnash&r1=1.99&r2=1.100
http://cvs.savannah.gnu.org/viewcvs/gnash/server/edit_text_character.cpp?cvsroot=gnash&r1=1.182&r2=1.183
http://cvs.savannah.gnu.org/viewcvs/gnash/server/matrix.cpp?cvsroot=gnash&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/gnash/server/resource.h?cvsroot=gnash&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.535&r2=1.536
http://cvs.savannah.gnu.org/viewcvs/gnash/server/types.cpp?cvsroot=gnash&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/utility.cpp?cvsroot=gnash&r1=1.21&r2=1.22
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/utility.h?cvsroot=gnash&r1=1.51&r2=1.52
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/Global.cpp?cvsroot=gnash&r1=1.127&r2=1.128
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/flash/geom/Point_as.cpp?cvsroot=gnash&r1=1.6&r2=1.7
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/flash/geom/Rectangle_as.cpp?cvsroot=gnash&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/gnash/testsuite/server/AsValueTest.cpp?cvsroot=gnash&r1=1.5&r2=1.6

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6631
retrieving revision 1.6632
diff -u -b -r1.6631 -r1.6632
--- ChangeLog   17 May 2008 10:10:57 -0000      1.6631
+++ ChangeLog   17 May 2008 10:47:04 -0000      1.6632
@@ -1,3 +1,26 @@
+2008-05-17 Benjamin Wolsey <address@hidden>
+
+       * libbase/utility.h: add inline bool utility::isFinite() to replace
+         use of non-portable and non-standard isfinite in the code. Drop
+         define of isfinite. Moved infinite_to_fzero under gnash::utility
+         namespace. Please make any portability fixes here and *not*
+         anywhere else.
+       * libbase/utility.cpp: drop dead include.
+       * server/array.cpp: replace isfinite.
+       * server/as_value.cpp: replace isfinite.
+       * server/as_value.h: drop second define of isfinite.
+       * server/character.cpp: drop using namespace std; (was for isfinite),
+         replace isfinite.
+       * server/edit_text_character.cpp: update infinite_to_fzero namespace.
+       * server/matrix.cpp: drop another define of isfinite, drop using
+         namespace std;, replace isfinite.
+       * server/resource.h: drop yet another define of isfinite.
+       * server/sprite_instance.cpp: replace isfinite.
+       * server/types.cpp: another define of isfinite...
+       * server/asobj/Global.cpp: replace isfinite
+       * server/asobj/flash/geom/{Point,Rectangle}_as.cpp: replace isfinite.
+       * testsuite/server/AsValueTest.cpp: replace isfinite.   
+
 2008-05-17 Sandro Santilli <address@hidden>
 
        * gui/Player.cpp (run): support relative urls in 'base' parameter,

Index: server/array.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/array.cpp,v
retrieving revision 1.105
retrieving revision 1.106
diff -u -b -r1.105 -r1.106
--- server/array.cpp    27 Apr 2008 18:13:14 -0000      1.105
+++ server/array.cpp    17 May 2008 10:47:07 -0000      1.106
@@ -598,7 +598,7 @@
        double value = temp.to_number();
 
        // if we were sent a string that can't convert like "asdf", it returns 
as NaN. -1 means invalid index
-       if (!isfinite(value)) return -1;
+       if (!utility::isFinite(value)) return -1;
 
        return int(value);
 }

Index: server/as_value.h
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.h,v
retrieving revision 1.91
retrieving revision 1.92
diff -u -b -r1.91 -r1.92
--- server/as_value.h   5 May 2008 21:02:01 -0000       1.91
+++ server/as_value.h   17 May 2008 10:47:09 -0000      1.92
@@ -47,12 +47,6 @@
 class asNamespace;
 class asName;
 
-#ifndef HAVE_ISFINITE
-# ifndef isfinite 
-#  define isfinite finite
-# endif 
-#endif 
-
 #ifndef NAN
 #       define NAN (std::numeric_limits<double>::quiet_NaN())
 #endif

Index: server/as_value.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/as_value.cpp,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -b -r1.133 -r1.134
--- server/as_value.cpp 5 May 2008 21:02:01 -0000       1.133
+++ server/as_value.cpp 17 May 2008 10:47:09 -0000      1.134
@@ -30,7 +30,7 @@
 #include "Number.h" // for automatic as_value::NUMBER => Number as object
 #include "Boolean.h" // for automatic as_value::BOOLEAN => Boolean as object
 #include "action.h" // for call_method0
-#include "utility.h" // for typeName()
+#include "utility.h" // for typeName() and utility::isFinite
 #include "namedStrings.h"
 
 #include <cmath>
@@ -633,7 +633,7 @@
 {
        double d = to_number();
 
-       if ( ! isfinite(d) ) return 0;
+       if ( ! utility::isFinite(d) ) return 0;
 
        boost::int32_t i = 0;
 
@@ -724,7 +724,7 @@
                case NUMBER:
                {
                        double d = getNum();
-                       return isfinite(d) && d;
+                       return utility::isFinite(d) && d;
                }
                case BOOLEAN:
                        return getBool();
@@ -983,7 +983,7 @@
     if (m_type == NUMBER && v.m_type == STRING)
     {
        double n = v.to_number();
-       if ( ! isfinite(n) ) return false;
+       if ( ! utility::isFinite(n) ) return false;
         return equalsSameType(n);
     }
 
@@ -992,7 +992,7 @@
     if (v.m_type == NUMBER && m_type == STRING)
     {
        double n = to_number();
-       if ( ! isfinite(n) ) return false;
+       if ( ! utility::isFinite(n) ) return false;
         return v.equalsSameType(n); 
     }
 

Index: server/character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/character.cpp,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -b -r1.99 -r1.100
--- server/character.cpp        14 May 2008 20:36:59 -0000      1.99
+++ server/character.cpp        17 May 2008 10:47:09 -0000      1.100
@@ -41,11 +41,6 @@
 
 #undef set_invalidated
 
-// This is for std::isfinite
-// FIXME: include the std namespace in the macro, and expose
-//        the macro in a single place !
-using namespace std;
-
 namespace gnash
 {
 
@@ -247,7 +242,7 @@
        {
                const double newx = fn.arg(0).to_number();
                matrix m = ptr->get_matrix();
-               
m.set_x_translation(std::floor(std::infinite_to_fzero(PIXELS_TO_TWIPS(newx))));
+               
m.set_x_translation(std::floor(utility::infinite_to_fzero(PIXELS_TO_TWIPS(newx))));
                ptr->set_matrix(m);
                ptr->transformedByScript(); // m_accept_anim_moves = false; 
        }
@@ -270,7 +265,7 @@
        {
                const double newy = fn.arg(0).to_number();
                matrix m = ptr->get_matrix();
-               
m.set_y_translation(std::floor(std::infinite_to_fzero(PIXELS_TO_TWIPS(newy))));
+               
m.set_y_translation(std::floor(utility::infinite_to_fzero(PIXELS_TO_TWIPS(newy))));
                ptr->set_matrix(m);
                ptr->transformedByScript(); // m_accept_anim_moves = false; 
        }
@@ -402,7 +397,7 @@
        {
                const as_value& inval = fn.arg(0);
                const double input = inval.to_number();
-               if ( inval.is_undefined() || inval.is_null() || ! 
isfinite(input) )
+               if ( inval.is_undefined() || inval.is_null() || ! 
utility::isFinite(input) )
                {
                        IF_VERBOSE_ASCODING_ERRORS(
                        log_aserror(_("Ignored attempt to set %s.%s=%s"),
@@ -414,7 +409,7 @@
                }
                // Set alpha modulate, in percent.
                cxform  cx = ptr->get_cxform();
-               cx.m_[3][0] = input / 100.f; // std::infinite_to_fzero(input) / 
100.f;
+               cx.m_[3][0] = input / 100.f; // 
utility::infinite_to_fzero(input) / 100.f;
                ptr->set_cxform(cx);
                ptr->transformedByScript(); // m_accept_anim_moves = false; 
        }

Index: server/edit_text_character.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/edit_text_character.cpp,v
retrieving revision 1.182
retrieving revision 1.183
diff -u -b -r1.182 -r1.183
--- server/edit_text_character.cpp      6 May 2008 11:21:01 -0000       1.182
+++ server/edit_text_character.cpp      17 May 2008 10:47:10 -0000      1.183
@@ -924,7 +924,7 @@
                //else if (name == "_x")
        {
                matrix  m = get_matrix();
-               m.m_[0][2] = 
std::infinite_to_fzero(PIXELS_TO_TWIPS(val.to_number()));  
+               m.m_[0][2] = 
utility::infinite_to_fzero(PIXELS_TO_TWIPS(val.to_number()));      
                set_matrix(m);
 
                // m_accept_anim_moves = false;
@@ -935,7 +935,7 @@
                //else if (name == "_y")
        {
                matrix  m = get_matrix();
-               m.m_[1][2] = 
std::infinite_to_fzero(PIXELS_TO_TWIPS(val.to_number()));
+               m.m_[1][2] = 
utility::infinite_to_fzero(PIXELS_TO_TWIPS(val.to_number()));
                set_matrix(m);
 
                // m_accept_anim_moves = false;
@@ -1071,7 +1071,7 @@
                // @@ TODO this should be generic to class character!
                // Arg is in percent.
                cxform  cx = get_cxform();
-               cx.m_[3][0] = fclamp(std::infinite_to_fzero(val.to_number()) / 
100.f, 0, 1);
+               cx.m_[3][0] = 
fclamp(utility::infinite_to_fzero(val.to_number()) / 100.f, 0, 1);
                set_cxform(cx);
                return true;
        }

Index: server/matrix.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/matrix.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- server/matrix.cpp   12 Mar 2008 03:46:03 -0000      1.27
+++ server/matrix.cpp   17 May 2008 10:47:11 -0000      1.28
@@ -30,15 +30,7 @@
 #include "types.h" // for TWIPS_TO_PIXEL define
                    // (should probably not use it though)
 #include "log.h"
-#include "utility.h" // for infinite_to_fzero
-
-#ifndef HAVE_ISFINITE
-# ifndef isfinite 
-#  define isfinite finite
-# endif 
-#endif 
-
-using namespace std;
+#include "utility.h" // for utility::infinite_to_fzero, utility::isFinite
 
 namespace gnash {
 
@@ -54,12 +46,12 @@
 bool
 matrix::is_valid() const
 {
-       return isfinite(m_[0][0])
-               && isfinite(m_[0][1])
-               && isfinite(m_[0][2])
-               && isfinite(m_[1][0])
-               && isfinite(m_[1][1])
-               && isfinite(m_[1][2]);
+       return utility::isFinite(m_[0][0])
+               && utility::isFinite(m_[0][1])
+               && utility::isFinite(m_[0][2])
+               && utility::isFinite(m_[1][0])
+               && utility::isFinite(m_[1][1])
+               && utility::isFinite(m_[1][2]);
 }
 
 
@@ -111,8 +103,8 @@
 // matrix.  When transforming points, the translation
 // happens first, then our original xform.
 {
-       m_[0][2] += infinite_to_fzero(m_[0][0] * tx + m_[0][1] * ty);
-       m_[1][2] += infinite_to_fzero(m_[1][0] * tx + m_[1][1] * ty);
+       m_[0][2] += utility::infinite_to_fzero(m_[0][0] * tx + m_[0][1] * ty);
+       m_[1][2] += utility::infinite_to_fzero(m_[1][0] * tx + m_[1][1] * ty);
 }
 
 
@@ -122,10 +114,10 @@
 // matrix.  When transforming points, the scale
 // happens first, then our original xform.
 {
-       m_[0][0] *= infinite_to_fzero(scale);
-       m_[0][1] *= infinite_to_fzero(scale);
-       m_[1][0] *= infinite_to_fzero(scale);
-       m_[1][1] *= infinite_to_fzero(scale);
+       m_[0][0] *= utility::infinite_to_fzero(scale);
+       m_[0][1] *= utility::infinite_to_fzero(scale);
+       m_[1][0] *= utility::infinite_to_fzero(scale);
+       m_[1][1] *= utility::infinite_to_fzero(scale);
 }
 
 void   
@@ -137,10 +129,10 @@
 
 #if 0 // the code below only works when x and y scales are equal,
       // see testsuite/server/MatrixTest.cpp
-       m_[0][0] *= infinite_to_fzero(x);
-       m_[0][1] *= infinite_to_fzero(x);
-       m_[1][0] *= infinite_to_fzero(y);
-       m_[1][1] *= infinite_to_fzero(y);
+       m_[0][0] *= utility::infinite_to_fzero(x);
+       m_[0][1] *= utility::infinite_to_fzero(x);
+       m_[1][0] *= utility::infinite_to_fzero(y);
+       m_[1][1] *= utility::infinite_to_fzero(y);
 #endif
 }
 
@@ -164,10 +156,10 @@
 {
        float   cos_angle = cosf(angle);
        float   sin_angle = sinf(angle);
-       m_[0][0] = infinite_to_fzero(x_scale * cos_angle);
-       m_[0][1] = infinite_to_fzero(y_scale * -sin_angle);
-       m_[1][0] = infinite_to_fzero(x_scale * sin_angle);
-       m_[1][1] = infinite_to_fzero(y_scale * cos_angle);
+       m_[0][0] = utility::infinite_to_fzero(x_scale * cos_angle);
+       m_[0][1] = utility::infinite_to_fzero(y_scale * -sin_angle);
+       m_[1][0] = utility::infinite_to_fzero(x_scale * sin_angle);
+       m_[1][1] = utility::infinite_to_fzero(y_scale * cos_angle);
 }
 
 void

Index: server/resource.h
===================================================================
RCS file: /sources/gnash/gnash/server/resource.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- server/resource.h   21 Jan 2008 20:55:51 -0000      1.12
+++ server/resource.h   17 May 2008 10:47:12 -0000      1.13
@@ -35,12 +35,6 @@
 class character_def;
 class sound_sample;
 
-#ifndef HAVE_ISFINITE
-# ifndef isfinite 
-#  define isfinite finite
-# endif 
-#endif 
- 
 
 /// An interface for casting to different types of resources.
 class resource : public ref_counted

Index: server/sprite_instance.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.535
retrieving revision 1.536
diff -u -b -r1.535 -r1.536
--- server/sprite_instance.cpp  16 May 2008 10:22:15 -0000      1.535
+++ server/sprite_instance.cpp  17 May 2008 10:47:12 -0000      1.536
@@ -1248,7 +1248,7 @@
   float x = PIXELS_TO_TWIPS(fn.arg(0).to_number());
   float y = PIXELS_TO_TWIPS(fn.arg(1).to_number());
 
-  if ( ! isfinite(x) )
+  if ( ! utility::isFinite(x) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1259,7 +1259,7 @@
     x = 0;
   }
    
-  if ( ! isfinite(y) )
+  if ( ! utility::isFinite(y) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1302,7 +1302,7 @@
   float x = PIXELS_TO_TWIPS(fn.arg(0).to_number());
   float y = PIXELS_TO_TWIPS(fn.arg(1).to_number());
 
-  if ( ! isfinite(x) )
+  if ( ! utility::isFinite(x) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1313,7 +1313,7 @@
     x = 0;
   }
    
-  if ( ! isfinite(y) )
+  if ( ! utility::isFinite(y) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1528,7 +1528,7 @@
   float ax = PIXELS_TO_TWIPS(fn.arg(2).to_number());
   float ay = PIXELS_TO_TWIPS(fn.arg(3).to_number());
 
-  if ( ! isfinite(cx) )
+  if ( ! utility::isFinite(cx) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1539,7 +1539,7 @@
     cx = 0;
   }
    
-  if ( ! isfinite(cy) )
+  if ( ! utility::isFinite(cy) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1550,7 +1550,7 @@
     cy = 0;
   }
 
-  if ( ! isfinite(ax) )
+  if ( ! utility::isFinite(ax) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1561,7 +1561,7 @@
     ax = 0;
   }
    
-  if ( ! isfinite(ay) )
+  if ( ! utility::isFinite(ay) )
   {
     IF_VERBOSE_ASCODING_ERRORS(
     std::stringstream ss; fn.dump_args(ss);
@@ -1932,10 +1932,10 @@
 
             // check for infinite values
             bool gotinf = false;
-            if ( ! isfinite(x0) ) { x0=0; gotinf=true; }
-            if ( ! isfinite(y0) ) { y0=0; gotinf=true; }
-            if ( ! isfinite(x1) ) { x1=0; gotinf=true; }
-            if ( ! isfinite(y1) ) { y1=0; gotinf=true; }
+            if ( ! utility::isFinite(x0) ) { x0=0; gotinf=true; }
+            if ( ! utility::isFinite(y0) ) { y0=0; gotinf=true; }
+            if ( ! utility::isFinite(x1) ) { x1=0; gotinf=true; }
+            if ( ! utility::isFinite(y1) ) { y1=0; gotinf=true; }
 
             // check for swapped values
             bool swapped = false;
@@ -2575,7 +2575,7 @@
 
   //log_debug("get_frame_number(%s), num: %g", frame_spec.to_debug_string(), 
num);
 
-  if ( ! isfinite(num) || int(num) != num || num == 0)
+  if ( ! utility::isFinite(num) || int(num) != num || num == 0)
   {
     bool ret = m_def->get_labeled_frame(fspecStr, frameno);
     //log_debug("get_labeled_frame(%s) returned %d, frameno is %d", fspecStr, 
ret, frameno);
@@ -2680,8 +2680,8 @@
 
   // Set _x and _y
   txt_matrix.set_translation(
-      infinite_to_fzero(PIXELS_TO_TWIPS(x)),
-      infinite_to_fzero(PIXELS_TO_TWIPS(y)));
+      utility::infinite_to_fzero(PIXELS_TO_TWIPS(x)),
+      utility::infinite_to_fzero(PIXELS_TO_TWIPS(y)));
 
   txt_char->set_matrix(txt_matrix);  
   // Here we add the character to the displayList.  

Index: server/types.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/types.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- server/types.cpp    12 Dec 2007 10:07:01 -0000      1.28
+++ server/types.cpp    17 May 2008 10:47:13 -0000      1.29
@@ -15,13 +15,6 @@
 #include <cstring>
 #include <sstream> // for ::print and ::toString
 
-
-#ifndef HAVE_ISFINITE
-# ifndef isfinite 
-#  define isfinite finite
-# endif 
-#endif 
-
 namespace gnash {
 
        //

Index: libbase/utility.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/utility.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -b -r1.21 -r1.22
--- libbase/utility.cpp 28 Mar 2008 16:23:07 -0000      1.21
+++ libbase/utility.cpp 17 May 2008 10:47:14 -0000      1.22
@@ -32,7 +32,6 @@
 
 #include "utility.h"
 #include "dlmalloc.h"
-//#include "tu_config.h"
 
 // Overrides of new/delete that use Doug Lea's malloc.  Very helpful
 // on certain lame platforms.

Index: libbase/utility.h
===================================================================
RCS file: /sources/gnash/gnash/libbase/utility.h,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -b -r1.51 -r1.52
--- libbase/utility.h   17 May 2008 08:43:22 -0000      1.51
+++ libbase/utility.h   17 May 2008 10:47:15 -0000      1.52
@@ -86,17 +86,31 @@
 #define M_PI 3.141592654
 #endif // M_PI
 
-#ifndef HAVE_ISFINITE
-# ifndef isfinite 
-#  define isfinite finite
-# endif 
+namespace gnash {
+namespace utility {
+
+inline bool isFinite(double d)
+{
+#ifndef isfinite
+    return (finite(d));
+#else
+    // Put using namespace std; here if you have to
+    // put it anywhere.
+    return (isfinite(d));
 #endif 
+}
 
+inline float infinite_to_fzero(float x)
+{
+    return utility::isFinite(x) ? x : 0.0f;
+}
+
+}
+}
 //
 // some misc handy math functions
 //
 namespace std {
-inline float   infinite_to_fzero(float x) { return isfinite(x) ? x : 0.0f; }
 }
 inline int     iabs(int i) { if (i < 0) return -i; else return i; }
 /* fmax()/fmin() is C99 */

Index: server/asobj/Global.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/Global.cpp,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -b -r1.127 -r1.128
--- server/asobj/Global.cpp     16 May 2008 07:03:15 -0000      1.127
+++ server/asobj/Global.cpp     17 May 2008 10:47:15 -0000      1.128
@@ -289,7 +289,7 @@
 {
     ASSERT_FN_ARGS_IS_1
 
-    return as_value( static_cast<bool>(isfinite(fn.arg(0).to_number())) );
+    return as_value( 
static_cast<bool>(utility::isFinite(fn.arg(0).to_number())) );
 }
 
 /// \brief Encode a string to URL-encoded format

Index: server/asobj/flash/geom/Point_as.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/flash/geom/Point_as.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -b -r1.6 -r1.7
--- server/asobj/flash/geom/Point_as.cpp        7 May 2008 08:03:40 -0000       
1.6
+++ server/asobj/flash/geom/Point_as.cpp        17 May 2008 10:47:16 -0000      
1.7
@@ -30,6 +30,7 @@
 #include "GnashException.h" // for ActionException
 #include "Object.h" // for AS inheritance
 #include "VM.h" // for addStatics
+#include "utility.h" // isFinite
 
 #include <sstream>
 
@@ -193,9 +194,9 @@
                ptr->get_member(NSV::PROP_X, &xval);
                ptr->get_member(NSV::PROP_Y, &yval);
                double x = xval.to_number();
-               if ( ! isfinite(x) ) return as_value(NAN);
+               if ( ! utility::isFinite(x) ) return as_value(NAN);
                double y = yval.to_number();
-               if ( ! isfinite(y) ) return as_value(NAN);
+               if ( ! utility::isFinite(y) ) return as_value(NAN);
 
                double l = sqrt(x*x+y*y);
                return as_value(l);

Index: server/asobj/flash/geom/Rectangle_as.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/flash/geom/Rectangle_as.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- server/asobj/flash/geom/Rectangle_as.cpp    7 May 2008 08:03:40 -0000       
1.7
+++ server/asobj/flash/geom/Rectangle_as.cpp    17 May 2008 10:47:16 -0000      
1.8
@@ -33,6 +33,7 @@
 #include "VM.h" // for addStatics
 #include "as_value.h"
 #include "namedStrings.h"
+#include "utility.h" // isFinite
 
 #include <sstream>
 
@@ -241,10 +242,10 @@
        if ( h.is_undefined() || h.is_null() ) return as_value(true);
 
        double wn = w.to_number();
-       if ( ! isfinite(wn) || wn == 0 ) return as_value(true);
+       if ( ! utility::isFinite(wn) || wn == 0 ) return as_value(true);
 
        double hn = h.to_number();
-       if ( ! isfinite(hn) || hn == 0 ) return as_value(true);
+       if ( ! utility::isFinite(hn) || hn == 0 ) return as_value(true);
 
        log_debug("Width: %g, Height: %g", wn, hn);
 

Index: testsuite/server/AsValueTest.cpp
===================================================================
RCS file: /sources/gnash/gnash/testsuite/server/AsValueTest.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- testsuite/server/AsValueTest.cpp    5 Apr 2008 12:09:21 -0000       1.5
+++ testsuite/server/AsValueTest.cpp    17 May 2008 10:47:16 -0000      1.6
@@ -29,11 +29,9 @@
 
 #include "check.h"
 
-using namespace gnash;
+#include "utility.h"
 
-#ifndef isfinite
-# define isfinite std::isfinite
-#endif
+using namespace gnash;
 
 int
 main(int /*argc*/, char** /*argv*/)
@@ -47,21 +45,21 @@
        num /= 9999999;
 
        check(!isnan(num));
-        check(isfinite(num));
+        check(utility::isFinite(num));
 
        num = std::numeric_limits<float>::quiet_NaN();
 
        check(isnan(num));
-       check(!isfinite(num));
+       check(!utility::isFinite(num));
 
        num = std::numeric_limits<float>::infinity();
        
        check(!isnan(num));
-       check(!isfinite(num));
+       check(!utility::isFinite(num));
 
        num = 1.0 / 0.0;
 
-       check(!isfinite(num));
+       check(!utility::isFinite(num));
        check(!isnan(num));
 
        int intgr = num;
@@ -69,7 +67,7 @@
        num = intgr;
 
        check(!isnan(num));
-       check(isfinite(num));
+       check(utility::isFinite(num));
 
 }
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]