xserver: Branch 'xorg-server-1.4-apple' - 15 commits

Jeremy Huddleston jeremyhu at kemper.freedesktop.org
Sat May 17 14:57:03 PDT 2008


 Xext/dpms.c                        |    7 +++++--
 composite/compwindow.c             |    4 ++--
 config/hal.c                       |    8 +++++---
 configure.ac                       |    2 +-
 exa/exa.c                          |    2 +-
 exa/exa_render.c                   |    1 +
 hw/dmx/Makefile.am                 |    1 +
 hw/dmx/dmxinput.c                  |   11 +++++++++++
 hw/kdrive/ephyr/Makefile.am        |    1 +
 hw/xfree86/common/xf86AutoConfig.c |    9 +++++++--
 hw/xfree86/common/xf86Priv.h       |    2 +-
 hw/xfree86/modes/xf86Cursors.c     |    3 ++-
 hw/xprint/Makefile.am              |    2 +-
 hw/xprint/ddxInit.c                |   11 +++++++++++
 xkb/xkbUtils.c                     |   23 +++++++++++++++--------
 15 files changed, 65 insertions(+), 22 deletions(-)

New commits:
commit 632ea6216691b13eda41e3580aa23ff5333b513d
Merge: 301262b... ddcca23...
Author: Jeremy Huddleston <jeremyhu at freedesktop.org>
Date:   Sat May 17 14:55:57 2008 -0700

    Merge branch 'server-1.4-branch' into xorg-server-1.4-apple

commit ddcca23a81abf5215f906a7ad097f1ed088ed92b
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date:   Thu Feb 7 15:48:04 2008 +1030

    xkb: when copying the keymap, make sure the structs default to 0/NULL.
    
    It actually does help if a pointer is NULL rather than pointing to nirvana
    when you're trying to free it lateron. Who would have thought?
    (cherry picked from commit 7a97ca667405a42d008265c3a870210cc1da97dd)
    (cherry picked from commit 0b0a09797302ac2171db5df20fc5110aafc8efbb)

diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c
index e90df0d..ce4df4c 100644
--- a/xkb/xkbUtils.c
+++ b/xkb/xkbUtils.c
@@ -1707,9 +1707,8 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
         else {
             if (dst->geom->sz_shapes) {
                 xfree(dst->geom->shapes);
-                dst->geom->shapes = NULL;
             }
-            
+            dst->geom->shapes = NULL;
             dst->geom->num_shapes = 0;
             dst->geom->sz_shapes = 0;
         }
@@ -1758,6 +1757,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
             }
 
             dst->geom->num_sections = 0;
+            dst->geom->sections = NULL;
         }
 
         if (src->geom->num_sections) {
@@ -1769,6 +1769,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
                 tmp = xalloc(src->geom->num_sections * sizeof(XkbSectionRec));
             if (!tmp)
                 return FALSE;
+            memset(tmp, 0, src->geom->num_sections * sizeof(XkbSectionRec));
             dst->geom->sections = tmp;
             dst->geom->num_sections = src->geom->num_sections;
 
@@ -1804,6 +1805,10 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
                         return FALSE;
                     dsection->doodads = tmp;
                 }
+                else {
+                    dsection->doodads = NULL;
+                }
+
                 for (k = 0,
                       sdoodad = ssection->doodads,
                       ddoodad = dsection->doodads;
@@ -1831,9 +1836,9 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
         else {
             if (dst->geom->sz_sections) {
                 xfree(dst->geom->sections);
-                dst->geom->sections = NULL;
             }
 
+            dst->geom->sections = NULL;
             dst->geom->num_sections = 0;
             dst->geom->sz_sections = 0;
         }
@@ -1862,6 +1867,8 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
                     }
                 }
             }
+            dst->geom->num_doodads = 0;
+            dst->geom->doodads = NULL;
         }
 
         if (src->geom->num_doodads) {
@@ -1874,7 +1881,7 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
                               sizeof(XkbDoodadRec));
             if (!tmp)
                 return FALSE;
-            bzero(tmp, src->geom->num_doodads * sizeof(XkbDoodadRec));
+            memset(tmp, 0, src->geom->num_doodads * sizeof(XkbDoodadRec));
             dst->geom->doodads = tmp;
 
             dst->geom->sz_doodads = src->geom->num_doodads;
@@ -1903,9 +1910,9 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
         else {
             if (dst->geom->sz_doodads) {
                 xfree(dst->geom->doodads);
-                dst->geom->doodads = NULL;
             }
 
+            dst->geom->doodads = NULL;
             dst->geom->num_doodads = 0;
             dst->geom->sz_doodads = 0;
         }
@@ -1933,10 +1940,10 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
             dst->geom->num_key_aliases = dst->geom->sz_key_aliases;
         }
         else {
-            if (dst->geom->sz_key_aliases && dst->geom->key_aliases) {
+            if (dst->geom->key_aliases) {
                 xfree(dst->geom->key_aliases);
-                dst->geom->key_aliases = NULL;
             }
+            dst->geom->key_aliases = NULL;
             dst->geom->num_key_aliases = 0;
             dst->geom->sz_key_aliases = 0;
         }
@@ -1967,8 +1974,8 @@ XkbCopyKeymap(XkbDescPtr src, XkbDescPtr dst, Bool sendNotifies)
         else {
             if (dst->geom->label_font) {
                 xfree(dst->geom->label_font);
-                dst->geom->label_font = NULL;
             }
+            dst->geom->label_font = NULL;
             dst->geom->label_color = NULL;
             dst->geom->base_color = NULL;
         }
commit 4e5cf76ecaa6b20f825738b07c257f4929e4652a
Author: Mart Raudsepp <mart.raudsepp at artecdesign.ee>
Date:   Fri May 16 20:06:31 2008 +0300

    xf86: Add AutoConfig driver for PCI ID 1022:2081 to 'amd'
    
    (cherry picked from commit ab9b0b36ac8ac72fc48c0abd91a83de49a18313c)
    (cherry picked from commit 4fa89fbe18c929e0d36305ab47e7e17841309ffd)
    ... and backported to 1.4 (back to no new devprivates and "amd" driver name)

diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
index 4f6a98a..703d156 100644
--- a/hw/xfree86/common/xf86AutoConfig.c
+++ b/hw/xfree86/common/xf86AutoConfig.c
@@ -160,12 +160,17 @@ videoPtrToDriverName(pciVideoPtr info)
 {
     /*
      * things not handled yet:
-     * amd/cyrix/nsc
-     * xgi
+     * cyrix/nsc.  should be merged into geode anyway.
+     * xgi.
      */
 
     switch (info->vendor)
     {
+	case 0x1022:
+		if (info->chipType == 0x2081)
+			return "amd";
+		else
+			return NULL;
 	case 0x1142:		    return "apm";
 	case 0xedd8:		    return "ark";
 	case 0x1a03:		    return "ast";
commit 22b1a9dd0f68e3307cdcf3e6f8fcaeda34acd483
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Thu Oct 18 17:44:48 2007 +0200

    EXA: Skip empty glyphs. (cherry picked from commit ce50bfd3369686cfecee5a138bd84ef1107a249d)

diff --git a/exa/exa_render.c b/exa/exa_render.c
index 2dd3fc1..ad1c02b 100644
--- a/exa/exa_render.c
+++ b/exa/exa_render.c
@@ -1184,6 +1184,7 @@ exaGlyphs (CARD8	op,
 	    y1 = y - glyph->info.y;
 
 	    if (x1 >= pCmpDrw->width || y1 >= pCmpDrw->height ||
+		glyph->info.width == 0 || glyph->info.height == 0 ||
 		(x1 + glyph->info.width) <= 0 || (y1 + glyph->info.height) <= 0)
 		goto nextglyph;
 
commit 2989f1071648770b5bbbfd80979f04d949f3dc57
Author: Daniel Stone <daniel at fooishbar.org>
Date:   Fri May 16 19:49:05 2008 +0300

    Prevent the -wm command line option from causing a SEGV
    
    The -wm (when mapped) option for the BackingStore support has been
    causing the server to dereference a NULL pointer.
    
    This has probably been the case since backing store has been
    implemented on top of Composite.
    
    It looks like (some of?) Composite didn’t expect its WIndowPtr
    argument to be the root window.
    
    In Composite’s compCheckRedirect() function we now avoid calling
    compAllocPixmap() and compFreePixmap() when the pWin pointer’s
    parent member is NULL, as is it the case with a server’s root window.
    
    This addresses:
    
    https://bugs.freedesktop.org/show_bug.cgi?id=15878
    (cherry picked from commit 04211c3532ca078420e3745a5eac3d9de120bc32)

diff --git a/composite/compwindow.c b/composite/compwindow.c
index 33192ad..65f77cf 100644
--- a/composite/compwindow.c
+++ b/composite/compwindow.c
@@ -146,8 +146,8 @@ compCheckRedirect (WindowPtr pWin)
     Bool	    should;
 
     should = pWin->realized && (pWin->drawable.class != InputOnly) &&
-	     (cw != NULL);
-    
+	     (cw != NULL) && (pWin->parent != NULL);
+
     /* Never redirect the overlay window */
     if (cs->pOverlayWin != NULL) {
 	if (pWin == cs->pOverlayWin) {
commit 33a9ee9ba0ab44548afafa965bbd0a715cb1509c
Author: Adam Jackson <ajax at redhat.com>
Date:   Mon Mar 24 12:22:19 2008 -0400

    Bug #13962: Re-arm the DPMS timer when re-enabling DPMS.
    (cherry picked from commit 536f2ff5382aaaace3b55481e15366bb15d87801)

diff --git a/Xext/dpms.c b/Xext/dpms.c
index aced406..0557523 100644
--- a/Xext/dpms.c
+++ b/Xext/dpms.c
@@ -200,12 +200,15 @@ static int
 ProcDPMSEnable(client)
     register ClientPtr client;
 {
-    /* REQUEST(xDPMSEnableReq); */
+    Bool was_enabled = DPMSEnabled;
 
     REQUEST_SIZE_MATCH(xDPMSEnableReq);
 
-    if (DPMSCapableFlag)
+    if (DPMSCapableFlag) {
 	DPMSEnabled = TRUE;
+	if (!was_enabled)
+	    SetScreenSaverTimer();
+    }
 
     return(client->noClientException);
 }
commit a08f848d4cd4c8c6e055a1182542d053a0a32c6b
Author: Adam Jackson <ajax at aspartame.nwnk.net>
Date:   Sun Nov 18 11:57:01 2007 -0500

    Bump DEFAULT_DPI to 96.
    
    75 is just nonsense.
    (cherry picked from commit db9ae863536fff80b5463d99e71dc47ae587980d)

diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
index b6fbd3a..5a3cba3 100644
--- a/hw/xfree86/common/xf86Priv.h
+++ b/hw/xfree86/common/xf86Priv.h
@@ -119,7 +119,7 @@ extern RootWinPropPtr *xf86RegisteredPropertiesTable;
 #define DEFAULT_LOG_VERBOSE	3
 #endif
 #ifndef DEFAULT_DPI
-#define DEFAULT_DPI		75
+#define DEFAULT_DPI		96
 #endif
 
 #define DEFAULT_UNRESOLVED	TRUE
commit d5a7badd6a0ea4ecbe76f0205aa53b42f7cd90dc
Author: Adam Jackson <ajax at redhat.com>
Date:   Mon May 5 14:37:07 2008 -0400

    Fix hal shutdown crash.
    
    Removing the device invalidates its ->next pointer.  Copy it aside before
    destroying the device.
    (cherry picked from commit f52f6c5c7efc281f9ac204fbaa4f71383df7463d)

diff --git a/config/hal.c b/config/hal.c
index 16f16ec..bdf7d6c 100644
--- a/config/hal.c
+++ b/config/hal.c
@@ -63,7 +63,7 @@ remove_device(DeviceIntPtr dev)
 static void
 device_removed(LibHalContext *ctx, const char *udi)
 {
-    DeviceIntPtr dev;
+    DeviceIntPtr dev, next;
     char *value;
 
     value = xalloc(strlen(udi) + 5); /* "hal:" + NULL */
@@ -71,11 +71,13 @@ device_removed(LibHalContext *ctx, const char *udi)
         return;
     sprintf(value, "hal:%s", udi);
 
-    for (dev = inputInfo.devices; dev; dev = dev->next) {
+    for (dev = inputInfo.devices; dev; dev = next) {
+	next = dev->next;
         if (dev->config_info && strcmp(dev->config_info, value) == 0)
             remove_device(dev);
     }
-    for (dev = inputInfo.off_devices; dev; dev = dev->next) {
+    for (dev = inputInfo.off_devices; dev; dev = next) {
+	next = dev->next;
         if (dev->config_info && strcmp(dev->config_info, value) == 0)
             remove_device(dev);
     }
commit 458b487723a7beb792857c920e9be22c2ce4625d
Author: Eric Anholt <eric at anholt.net>
Date:   Fri Aug 17 12:14:16 2007 -0700

    Fix overly-restrictive integer overflow check in EXA pixmap creation.
    
    The result was that at 32bpp, pixmaps of width 8192 or greater couldn't be
    created, due to treating a pitch value as a width.
    (cherry picked from commit bc2d516f16d94c805b4dfa8e5b9eef40ff0cbe98)

diff --git a/exa/exa.c b/exa/exa.c
index aa42b92..b2faf2f 100644
--- a/exa/exa.c
+++ b/exa/exa.c
@@ -253,7 +253,7 @@ exaCreatePixmap(ScreenPtr pScreen, int w, int h, int depth)
 				     pExaScr->info->pixmapPitchAlign);
     pExaPixmap->fb_size = pExaPixmap->fb_pitch * h;
 
-    if (pExaPixmap->fb_pitch > 32767) {
+    if (pExaPixmap->fb_pitch > 131071) {
 	fbDestroyPixmap(pPixmap);
 	return NULL;
     }
commit 2621380cf680941a0423d64d827fb3513545ebf5
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Thu Mar 20 09:18:29 2008 -0400

    Fix RandR 1.2 driver interface conversion of two colour cursors to ARGB
    
    This patch (and not setting HARDWARE_CURSOR_BIT_ORDER_MSBFIRST on big endian
    platforms) fixes it for me with the radeon driver and doesn't break intel.
    
    Correct patch this time :)
    (cherry picked from commit da973e962d09854b571320dee7dd9569060bc39e)

diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index b510164..a7616e0 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -137,7 +137,8 @@ cursor_bitpos (int flags, int x, Bool mask)
 	mask = !mask;
     if (flags & HARDWARE_CURSOR_NIBBLE_SWAPPED)
 	x = (x & ~3) | (3 - (x & 3));
-    if (flags & HARDWARE_CURSOR_BIT_ORDER_MSBFIRST)
+    if (((flags & HARDWARE_CURSOR_BIT_ORDER_MSBFIRST) == 0) ==
+	(X_BYTE_ORDER == X_BIG_ENDIAN))
 	x = (x & ~7) | (7 - (x & 7));
     if (flags & HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_1)
 	x = (x << 1) + mask;
commit 9db5401d69f1fab8db4bdd166536a25e4516e231
Author: Donnie Berkholz <dberkholz at gentoo.org>
Date:   Thu May 8 00:08:12 2008 -0700

    xprint: fix linking by including XSERVER_LIBS.

diff --git a/hw/xprint/Makefile.am b/hw/xprint/Makefile.am
index f834966..2269544 100644
--- a/hw/xprint/Makefile.am
+++ b/hw/xprint/Makefile.am
@@ -12,7 +12,7 @@ Xprt_LDFLAGS = -L$(top_srcdir)
 Xprt_LDADD = @XPRINT_LIBS@ ps/libps.la raster/libraster.la  \
 	pcl/libpcl.la pcl-mono/libpcl.la $(top_builddir)/fb/libfb.la \
 	$(top_builddir)/render/librender.la $(top_builddir)/mi/libmi.la \
-	$(top_builddir)/Xext/libXext.la  @FREETYPE_LIBS@
+	$(top_builddir)/Xext/libXext.la  @FREETYPE_LIBS@ @XSERVER_LIBS@
 
 miinitext-wrapper.c:
 	echo "#include \"$(top_srcdir)/mi/miinitext.c\"" >> $@
commit 1022c7774b0a92946e87c61aa79b076a6ffe95ff
Author: Donnie Berkholz <dberkholz at gentoo.org>
Date:   Thu May 8 00:07:57 2008 -0700

    xprint: fix build by adding {New,Delete}InputDeviceRequest.

diff --git a/hw/xprint/ddxInit.c b/hw/xprint/ddxInit.c
index a465c4c..1e7652e 100644
--- a/hw/xprint/ddxInit.c
+++ b/hw/xprint/ddxInit.c
@@ -310,6 +310,17 @@ ChangeDeviceControl (
     return BadMatch;
 }
 
+int
+NewInputDeviceRequest(InputOption *options, DeviceIntPtr *pdev)
+{
+    return BadValue;
+}
+
+void
+DeleteInputDeviceRequest(DeviceIntPtr dev)
+{
+}
+
 void
 OpenInputDevice (
     DeviceIntPtr dev,
commit 9df3886354152250983171825daeb93a6a845369
Author: Donnie Berkholz <dberkholz at gentoo.org>
Date:   Thu May 8 00:06:16 2008 -0700

    xephyr: fix linking by adding pixman and using XSERVER_LIBS.

diff --git a/configure.ac b/configure.ac
index c73f4a7..6145aa2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1814,7 +1814,7 @@ if test "$KDRIVE" = yes; then
        XSDL_INCS="`sdl-config --cflags` $XSERVER_CFLAGS"
     fi
 
-    PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp, [xephyr="yes"], [xephyr="no"])
+    PKG_CHECK_MODULES(XEPHYR, x11 xext xfont xau xdmcp $PIXMAN, [xephyr="yes"], [xephyr="no"])
     if test "x$XEPHYR" = xauto; then
         XEPHYR=$xephyr
     fi
diff --git a/hw/kdrive/ephyr/Makefile.am b/hw/kdrive/ephyr/Makefile.am
index cc3019f..1738d0f 100644
--- a/hw/kdrive/ephyr/Makefile.am
+++ b/hw/kdrive/ephyr/Makefile.am
@@ -28,6 +28,7 @@ Xephyr_LDADD = 						\
 	libxephyr-hostx.a			        \
 	../../../exa/libexa.la				\
 	@KDRIVE_LIBS@					\
+	@XSERVER_LIBS@					\
         @XEPHYR_LIBS@
 
 Xephyr_DEPENDENCIES =	\
commit 6c5c1c5c9819fe9a5f2e2a6995017e414662d6cf
Author: Donnie Berkholz <dberkholz at gentoo.org>
Date:   Thu May 8 00:05:00 2008 -0700

    dmx: link in XSERVER_LIBS.

diff --git a/hw/dmx/Makefile.am b/hw/dmx/Makefile.am
index 002ea11..15dc281 100644
--- a/hw/dmx/Makefile.am
+++ b/hw/dmx/Makefile.am
@@ -87,6 +87,7 @@ Xdmx_LDADD = $(XORG_CORE_LIBS) \
              $(GLX_LIBS) \
              input/libdmxinput.a \
              config/libdmxconfig.a \
+             @XSERVER_LIBS@ \
              @DMXMODULES_LIBS@
 
 # Man page
commit 71f0711f40d825de3f1a7a09de78c6181fb3a521
Author: Donnie Berkholz <dberkholz at gentoo.org>
Date:   Thu May 8 00:04:36 2008 -0700

    dmx: fix build by adding {New,Delete}InputDeviceRequest.

diff --git a/hw/dmx/dmxinput.c b/hw/dmx/dmxinput.c
index d644b5d..83f8a4a 100644
--- a/hw/dmx/dmxinput.c
+++ b/hw/dmx/dmxinput.c
@@ -105,3 +105,14 @@ void dmxUpdateWindowInfo(DMXUpdateType type, WindowPtr pWindow)
         if (!dmxInput->detached && dmxInput->updateWindowInfo)
             dmxInput->updateWindowInfo(dmxInput, type, pWindow);
 }
+
+int
+NewInputDeviceRequest (InputOption *options, DeviceIntPtr *pdev)
+{
+    return BadRequest;
+}
+
+void
+DeleteInputDeviceRequest(DeviceIntPtr pDev)
+{
+}


More information about the xorg-commit mailing list