gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash ChangeLog server/matrix.cpp


From: Zou Lunkai
Subject: [Gnash-commit] gnash ChangeLog server/matrix.cpp
Date: Fri, 20 Jun 2008 03:43:40 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Zou Lunkai <zoulunkai>  08/06/20 03:43:40

Modified files:
        .              : ChangeLog 
        server         : matrix.cpp 

Log message:
        * server/matrix.cpp: invert(), fix overflows, should also fix regression
         bug#23621.
        
        reintroduce more floats for matrix calculation, hard to avoid during 
matrix invertion. It's possible to implement a full integer version, but the 
code would be much more unreadable.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6991&r2=1.6992
http://cvs.savannah.gnu.org/viewcvs/gnash/server/matrix.cpp?cvsroot=gnash&r1=1.37&r2=1.38

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6991
retrieving revision 1.6992
diff -u -b -r1.6991 -r1.6992
--- ChangeLog   19 Jun 2008 23:24:02 -0000      1.6991
+++ ChangeLog   20 Jun 2008 03:43:39 -0000      1.6992
@@ -1,3 +1,8 @@
+2008-06-20 Zou Lunkai <address@hidden>
+
+       * server/matrix.cpp: invert(), fix overflows, should also fix regression
+        bug#23621.
+
 2008-06-19 Sandro Santilli <address@hidden>
 
        * server/asobj/SoundFfmpeg.cpp: any new loadSound call replaces

Index: server/matrix.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/matrix.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -b -r1.37 -r1.38
--- server/matrix.cpp   13 Jun 2008 09:13:05 -0000      1.37
+++ server/matrix.cpp   20 Jun 2008 03:43:40 -0000      1.38
@@ -245,14 +245,12 @@
     else
     {
         double  d = 65536.0 * 65536.0 / det;
-    
-        boost::int32_t d_fixed = DoubleToFixed16(d);
         boost::int32_t t0, t4;
         
-        t0 = Fixed16Mul(sy, d_fixed);
-        sy  = Fixed16Mul(sx, d_fixed);
-        shy = Fixed16Mul(-shy, d_fixed);
-        shx = Fixed16Mul(-shx, d_fixed);
+        t0  = (boost::int32_t)(sy * d);
+        sy  = (boost::int32_t)(sx * d);
+        shy = (boost::int32_t)(-shy * d);
+        shx = (boost::int32_t)(-shx * d);
 
         t4 = - ( Fixed16Mul(tx, t0) + Fixed16Mul(ty, shy) );
         ty = - ( Fixed16Mul(tx, shx)+ Fixed16Mul(ty, sy) );




reply via email to

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