https://bugzilla.novell.com/show_bug.cgi?id=204324
------- Comment #31 from sndirsch@novell.com 2006-09-13 06:27 MST -------
Well, the X Server is crashing in memcpy() in the new optimization code for
fbBlt():
--- programs/Xserver/fb/fbblt.c 2005-11-29 12:29:07.000000000 +0100
+++ ../git/xserver/fb/fbblt.c 2006-08-15 11:53:39.000000000 +0200
@@ -21,12 +21,12 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/fb/fbblt.c,v 1.7 2000/09/22 05:58:01 keithp
Ex
p $ */
#ifdef HAVE_DIX_CONFIG_H
#include
#endif
+#include
#include "fb.h"
#define InitializeShifts(sx,dx,ls,rs) { \
@@ -77,6 +77,29 @@ fbBlt (FbBits *srcLine,
return;
}
#endif
+
+ if (alu == GXcopy && pm == FB_ALLONES && !reverse &&
+ !(srcX & 7) && !(dstX & 7) && !(width & 7)) {
+ int i;
+ CARD8 *src = (CARD8 *) srcLine;
+ CARD8 *dst = (CARD8 *) dstLine;
+
+ srcStride *= sizeof(FbBits);
+ dstStride *= sizeof(FbBits);
+ width >>= 3;
+ src += (srcX >> 3);
+ dst += (dstX >> 3);
+
+ if (!upsidedown)
+ for (i = 0; i < height; i++)
+ memcpy(dst + i * dstStride, src + i * srcStride, width);
+ else
+ for (i = height - 1; i >= 0; i--)
+ memcpy(dst + i * dstStride, src + i * srcStride, width);
+
+ return;
+ }
+
FbInitializeMergeRop(alu, pm);
destInvarient = FbDestInvarientMergeRop();
if (upsidedown)
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.