Author: fcrozat
Date: Fri Feb  9 12:08:00 2007
New Revision: 118385

Added:
   packages/cooker/cairo/current/SOURCES/cairo-1.3.12-fixnorender.patch
Modified:
   packages/cooker/cairo/current/SPECS/cairo.spec

Log:
-Patch0 (GIT): fix crash when RENDER isn't available (fdo bug #9893)


Added: packages/cooker/cairo/current/SOURCES/cairo-1.3.12-fixnorender.patch
==============================================================================
--- (empty file)
+++ packages/cooker/cairo/current/SOURCES/cairo-1.3.12-fixnorender.patch        
Fri Feb  9 12:08:00 2007
@@ -0,0 +1,80 @@
+commit 9d3f537423b3cc0cb6a4b2607e9307c1eef9e074
+Author: Soren Sandmann Pedersen <[EMAIL PROTECTED]>
+Date:   Tue Feb 6 16:27:42 2007 -0500
+
+    Remove left-over assert and some alpha checks from
+    fbCompositeSrc_8888x0565mmx(). Bug 9893.
+
+diff --git a/pixman/src/fbmmx.c b/pixman/src/fbmmx.c
+index 93e7d50..387d4b4 100644
+--- a/pixman/src/fbmmx.c
++++ b/pixman/src/fbmmx.c
+@@ -1472,8 +1472,6 @@ fbCompositeSrc_8888x0565mmx (pixman_operator_t      op,
+     fbComposeGetStart (pDst, xDst, yDst, CARD16, dstStride, dstLine, 1);
+     fbComposeGetStart (pSrc, xSrc, ySrc, CARD32, srcStride, srcLine, 1);
+ 
+-    assert (pSrc->pDrawable == pMask->pDrawable);
+-
+     while (height--)
+     {
+       dst = dstLine;
+@@ -1502,46 +1500,22 @@ fbCompositeSrc_8888x0565mmx (pixman_operator_t      op,
+ 
+       while (w >= 4)
+       {
+-          CARD32 s0, s1, s2, s3;
+-          unsigned char a0, a1, a2, a3;
+           __m64 vsrc0, vsrc1, vsrc2, vsrc3;
++          __m64 vdest;
+ 
+-          s0 = *src;
+-          s1 = *(src + 1);
+-          s2 = *(src + 2);
+-          s3 = *(src + 3);
+-
+-          a0 = (s0 >> 24);
+-          a1 = (s1 >> 24);
+-          a2 = (s2 >> 24);
+-          a3 = (s3 >> 24);
+-
+-          vsrc0 = load8888(s0);
+-          vsrc1 = load8888(s1);
+-          vsrc2 = load8888(s2);
+-          vsrc3 = load8888(s3);
+-
+-          if ((a0 & a1 & a2 & a3) == 0xFF)
+-          {
+-              __m64 vdest;
+-              vdest = pack565(vsrc0, _mm_setzero_si64(), 0);
+-              vdest = pack565(vsrc1, vdest, 1);
+-              vdest = pack565(vsrc2, vdest, 2);
+-              vdest = pack565(vsrc3, vdest, 3);
+-
+-              *(__m64 *)dst = vdest;
+-          }
+-          else if (a0 | a1 | a2 | a3)
+-          {
+-              __m64 vdest = *(__m64 *)dst;
+-
+-              vdest = pack565(over(vsrc0, expand_alpha(vsrc0), 
expand565(vdest, 0)), vdest, 0);
+-              vdest = pack565(over(vsrc1, expand_alpha(vsrc1), 
expand565(vdest, 1)), vdest, 1);
+-              vdest = pack565(over(vsrc2, expand_alpha(vsrc2), 
expand565(vdest, 2)), vdest, 2);
+-              vdest = pack565(over(vsrc3, expand_alpha(vsrc3), 
expand565(vdest, 3)), vdest, 3);
++          vsrc0 = load8888(*(src + 0));
++          vsrc1 = load8888(*(src + 1));
++          vsrc2 = load8888(*(src + 2));
++          vsrc3 = load8888(*(src + 3));
+ 
+-              *(__m64 *)dst = vdest;
+-          }
++          vdest = *(__m64 *)dst;
++          
++          vdest = pack565(over(vsrc0, expand_alpha(vsrc0), expand565(vdest, 
0)), vdest, 0);
++          vdest = pack565(over(vsrc1, expand_alpha(vsrc1), expand565(vdest, 
1)), vdest, 1);
++          vdest = pack565(over(vsrc2, expand_alpha(vsrc2), expand565(vdest, 
2)), vdest, 2);
++          vdest = pack565(over(vsrc3, expand_alpha(vsrc3), expand565(vdest, 
3)), vdest, 3);
++          
++          *(__m64 *)dst = vdest;
+ 
+           w -= 4;
+           dst += 4;

Modified: packages/cooker/cairo/current/SPECS/cairo.spec
==============================================================================
--- packages/cooker/cairo/current/SPECS/cairo.spec      (original)
+++ packages/cooker/cairo/current/SPECS/cairo.spec      Fri Feb  9 12:08:00 2007
@@ -5,10 +5,12 @@
 Summary:       Cairo - multi-platform 2D graphics library
 Name:          cairo
 Version: 1.3.12
-Release: %mkrel 1
+Release: %mkrel 2
 License:       BSD
 Group:         System/Libraries
 Source0:       http://cairographics.org/releases/%name-%version.tar.bz2
+# (fc) 1.3.12-2mdv fix crash when render isn't available (GIT) (fdo bug #9893)
+Patch0:                cairo-1.3.12-fixnorender.patch
 URL:           http://cairographics.org/
 BuildRequires:  freetype2-devel >= 2.1.10
 %if %mdkversion <= 200600
@@ -99,6 +101,7 @@
 
 %prep
 %setup -q
+%patch0 -p1 -b .fixnorender
 
 %build
 %configure2_5x --enable-gtk-doc  --disable-glitz --enable-pdf --enable-ps 
--disable-xcb

Reply via email to