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

xorg-server: Changes to 'debian-unstable'



 ChangeLog                                  |  209 ++++++
 Xext/sync.c                                |   24 
 Xi/extinit.c                               |   38 -
 Xi/xiproperty.c                            |  251 +++----
 config/wscons.c                            |    6 
 configure.ac                               |    4 
 debian/changelog                           |    6 
 debian/patches/03_fix-panning.diff         |   50 -
 dix/gc.c                                   |   10 
 dix/getevents.c                            |    2 
 dix/tables.c                               |  955 +++++++++++++++++------------
 fb/fbseg.c                                 |   18 
 hw/kdrive/ephyr/ephyr.c                    |   80 +-
 hw/kdrive/ephyr/hostx.c                    |   36 -
 hw/kdrive/ephyr/hostx.h                    |   10 
 hw/kdrive/src/kdrive.c                     |   20 
 hw/kdrive/src/kinput.c                     |    2 
 hw/xfree86/loader/loader.c                 |   13 
 hw/xfree86/modes/xf86Crtc.c                |    8 
 hw/xfree86/modes/xf86DisplayIDModes.c      |  171 ++---
 hw/xfree86/modes/xf86EdidModes.c           |  122 +--
 hw/xfree86/os-support/bsd/bsd_apm.c        |   26 
 hw/xfree86/os-support/bsd/bsd_kqueue_apm.c |   26 
 hw/xfree86/os-support/bus/Sbus.c           |   20 
 hw/xfree86/os-support/linux/lnx_apm.c      |   31 
 hw/xfree86/os-support/solaris/sun_apm.c    |   26 
 hw/xquartz/console_redirect.c              |   28 
 render/filter.c                            |    5 
 28 files changed, 1311 insertions(+), 886 deletions(-)

New commits:
commit 5da5a1ba44c2f70b5b8473c26557ac362bfe6b77
Author: Julien Cristau <jcristau@debian.org>
Date:   Wed Aug 22 10:53:49 2012 +0200

    Upload to unstable

diff --git a/debian/changelog b/debian/changelog
index 10f2764..0043c70 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-xorg-server (2:1.12.3.902-1) UNRELEASED; urgency=low
+xorg-server (2:1.12.3.902-1) unstable; urgency=low
 
   * New upstream release candidate
     + glx: Free DRI2 drawable reference to destroyed GLX drawable
@@ -9,7 +9,7 @@ xorg-server (2:1.12.3.902-1) UNRELEASED; urgency=low
     (closes: #643693)
   * Video ABI bumped to 12.1, serverminver to 2:1.12.3.901.
 
- -- Julien Cristau <jcristau@debian.org>  Tue, 21 Aug 2012 19:50:31 +0200
+ -- Julien Cristau <jcristau@debian.org>  Tue, 21 Aug 2012 21:35:25 +0200
 
 xorg-server (2:1.12.3-1) unstable; urgency=low
 

commit 6c19948c45f794b0c54710c5bb349dbd3e46d41e
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Aug 21 21:34:29 2012 +0200

    Make the panning fix actually apply

diff --git a/debian/patches/03_fix-panning.diff b/debian/patches/03_fix-panning.diff
index d990948..236ab49 100644
--- a/debian/patches/03_fix-panning.diff
+++ b/debian/patches/03_fix-panning.diff
@@ -18,10 +18,10 @@ Signed-off-by: Rui Matos <tiagomatos@gmail.com>
  hw/xfree86/modes/xf86RandR12.c |   38 ++++++++++++++++++++++++++++++++++----
  1 files changed, 34 insertions(+), 4 deletions(-)
 
-diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
-index 4be0ea3..3530abf 100644
---- a/hw/xfree86/modes/xf86RandR12.c
-+++ b/hw/xfree86/modes/xf86RandR12.c
+Index: xorg-server/hw/xfree86/modes/xf86RandR12.c
+===================================================================
+--- xorg-server.orig/hw/xfree86/modes/xf86RandR12.c
++++ xorg-server/hw/xfree86/modes/xf86RandR12.c
 @@ -60,6 +60,9 @@ typedef struct _xf86RandR12Info {
       * See https://bugs.freedesktop.org/show_bug.cgi?id=21554
       */
@@ -43,7 +43,7 @@ index 4be0ea3..3530abf 100644
  static Bool
  xf86RandR12ScreenSetSize(ScreenPtr pScreen,
                           CARD16 width,
-@@ -676,6 +683,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
+@@ -676,6 +683,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScre
      WindowPtr pRoot = pScreen->root;
      PixmapPtr pScrnPix;
      Bool ret = FALSE;
@@ -51,7 +51,7 @@ index 4be0ea3..3530abf 100644
      int c;
  
      if (xf86RandR12Key) {
-@@ -696,8 +704,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
+@@ -696,8 +704,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScre
      for (c = 0; c < config->num_crtc; c++) {
          xf86CrtcPtr crtc = config->crtc[c];
  
@@ -61,7 +61,7 @@ index 4be0ea3..3530abf 100644
              if (crtc->panningTotalArea.x2 > crtc->panningTrackingArea.x1)
                  crtc->panningTotalArea.x2 += width - pScreen->width;
              if (crtc->panningTotalArea.y2 > crtc->panningTrackingArea.y1)
-@@ -708,6 +715,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScreen,
+@@ -708,6 +715,7 @@ xf86RandR12ScreenSetSize(ScreenPtr pScre
                  crtc->panningTrackingArea.y2 += height - pScreen->height;
              xf86RandR13VerifyPanningArea(crtc, width, height);
              xf86RandR13Pan(crtc, randrp->pointerX, randrp->pointerY);
@@ -69,15 +69,15 @@ index 4be0ea3..3530abf 100644
          }
      }
  
-@@ -903,6 +911,7 @@ xf86RandR12CloseScreen(ScreenPtr pScreen)
+@@ -903,6 +911,7 @@ xf86RandR12CloseScreen(ScreenPtr pScreen
      randrp = XF86RANDRINFO(pScreen);
  #if RANDR_12_INTERFACE
-     xf86ScreenToScrn(pScreen)->EnterVT = randrp->orig_EnterVT;
+     xf86Screens[pScreen->myNum]->EnterVT = randrp->orig_EnterVT;
 +    pScreen->ConstrainCursorHarder = randrp->orig_ConstrainCursorHarder;
  #endif
  
      free(randrp);
-@@ -1216,6 +1225,7 @@ xf86RandR12CrtcSet(ScreenPtr pScreen,
+@@ -1213,6 +1222,7 @@ xf86RandR12CrtcSet(ScreenPtr pScreen,
              }
              xf86RandR13VerifyPanningArea(crtc, pScreen->width, pScreen->height);
              xf86RandR13Pan(crtc, randrp->pointerX, randrp->pointerY);
@@ -85,7 +85,7 @@ index 4be0ea3..3530abf 100644
              /*
               * Save the last successful setting for EnterVT
               */
-@@ -1650,6 +1660,7 @@ xf86RandR13SetPanning(ScreenPtr pScreen,
+@@ -1639,6 +1649,7 @@ xf86RandR13SetPanning(ScreenPtr pScreen,
      BoxRec oldTotalArea;
      BoxRec oldTrackingArea;
      INT16 oldBorder[4];
@@ -93,7 +93,7 @@ index 4be0ea3..3530abf 100644
  
      if (crtc->version < 2)
          return FALSE;
-@@ -1667,6 +1678,7 @@ xf86RandR13SetPanning(ScreenPtr pScreen,
+@@ -1656,6 +1667,7 @@ xf86RandR13SetPanning(ScreenPtr pScreen,
  
      if (xf86RandR13VerifyPanningArea(crtc, pScreen->width, pScreen->height)) {
          xf86RandR13Pan(crtc, randrp->pointerX, randrp->pointerY);
@@ -101,7 +101,7 @@ index 4be0ea3..3530abf 100644
          return TRUE;
      }
      else {
-@@ -1674,6 +1686,7 @@ xf86RandR13SetPanning(ScreenPtr pScreen,
+@@ -1663,6 +1675,7 @@ xf86RandR13SetPanning(ScreenPtr pScreen,
          memcpy(&crtc->panningTotalArea, &oldTotalArea, sizeof(BoxRec));
          memcpy(&crtc->panningTrackingArea, &oldTrackingArea, sizeof(BoxRec));
          memcpy(crtc->panningBorder, oldBorder, 4 * sizeof(INT16));
@@ -109,17 +109,8 @@ index 4be0ea3..3530abf 100644
          return FALSE;
      }
  }
-@@ -1762,8 +1775,6 @@ xf86RandR14ProviderSetOutputSource(ScreenPtr pScreen,
-                                    RRProviderPtr provider,
-                                    RRProviderPtr source_provider)
- {
--
--
-     if (!source_provider) {
-         if (provider->output_source) {
-             ScreenPtr cmScreen = pScreen->current_master;
-@@ -1859,6 +1870,21 @@ xf86CrtcSetScanoutPixmap(RRCrtcPtr randr_crtc, PixmapPtr pixmap)
-     return crtc->funcs->set_scanout_pixmap(crtc, pixmap);
+@@ -1748,6 +1761,21 @@ xf86RandR12EnterVT(int screen_index, int
+     return RRGetInfo(pScreen, TRUE);    /* force a re-probe of outputs and notify clients about changes */
  }
  
 +static void
@@ -140,7 +131,7 @@ index 4be0ea3..3530abf 100644
  static Bool
  xf86RandR12Init12(ScreenPtr pScreen)
  {
-@@ -1895,6 +1921,10 @@ xf86RandR12Init12(ScreenPtr pScreen)
+@@ -1776,6 +1804,10 @@ xf86RandR12Init12(ScreenPtr pScreen)
      randrp->orig_EnterVT = pScrn->EnterVT;
      pScrn->EnterVT = xf86RandR12EnterVT;
  
@@ -151,12 +142,3 @@ index 4be0ea3..3530abf 100644
      if (!xf86RandR12CreateObjects12(pScreen))
          return FALSE;
  
--- 
-1.7.7.6
-
-_______________________________________________
-xorg-devel@lists.x.org: X.Org development
-Archives: http://lists.x.org/archives/xorg-devel
-Info: http://lists.x.org/mailman/listinfo/xorg-devel
-
-

commit 245bb2478ce1175733f6b68c9d379dabfe1a8c3e
Author: Julien Cristau <jcristau@debian.org>
Date:   Tue Aug 21 19:56:42 2012 +0200

    Bump changelogs

diff --git a/ChangeLog b/ChangeLog
index 33c75c3..3fc89f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,212 @@
+commit a6d7400507f220d6f98b853def7904586fb1eadd
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Sun Aug 19 09:07:33 2012 -0700
+
+    configure.ac: Version bump to 1.12.3.902 (1.12.4 RC2)
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+
+commit 0754f74a538ca59e45a39fefa2d90b9d3bc822dd
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Thu Aug 16 19:42:54 2012 -0700
+
+    XQuartz: console_redirect: Properly zero-out the tail of the array on realloc()
+    
+    We forgot to multiply by sizeof(), so it wasn't fully zeroed out.
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+    (cherry picked from commit 7c3d2e4828deb4e8ec38e8ef88d6f92b2d931033)
+
+commit 2141f21d51b0787c8d287bb50d01a6a81e61a634
+Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+Date:   Thu Aug 16 15:43:34 2012 -0700
+
+    XQuartz: console_redirect: Set the correct location for reading into the buffer
+    
+    Prior to this change, it was possible that a large message would have some
+    of its data prepended to subsequent messages due to our not incorrectly
+    setting the location to write into the buffer.
+    
+    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
+    (cherry picked from commit a32e01802ff1c938c0afe0cc007a273b9ada8610)
+
+commit 73d62f1aaea4a862cc512048cb6ca59586f4cdb6
+Author: Keith Packard <keithp@keithp.com>
+Date:   Tue Aug 7 17:49:46 2012 -0700
+
+    Only free Render filter names on last screen close
+    
+    Hotplugging screens causes the render filter names to get freed while
+    still in use; wait for the last core screen to be closed before
+    freeing them. That only happens at server reset, when we want them to
+    be freed.
+    
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    Reviewed-by: Dave Airlie <airlied@redhat.com>
+    (cherry picked from commit 19772670e3041fe1c7f5bbf32fa039a6d8245ccb)
+
+commit 3e62f48edf47a59d923ac58b6d4262b02456a556
+Author: Simon Schubert <2@0x2c.org>
+Date:   Sun Aug 12 09:40:16 2012 -0700
+
+    fb: reorder Bresenham error correction to avoid overshoot.
+    
+    When fbBresSolid draws a line, it can happen that after the last
+    pixel, the Bresenham error term overflows, and fbBresSolid paints
+    another pixel before adjusting the error term.
+    
+    However, if this happens on the last pixel (len=0), this extra pixel
+    might overshoot the boundary, and, in rare cases, lead to a segfault.
+    
+    Fix this issue by adjusting for the Bresenham error term before
+    drawing the main pixel, not after.
+    
+    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=24274
+    Signed-off-by: Simon Schubert <2@0x2c.or>
+    Tested-by: Mitch Davis <mjd+freedesktop.org@afork.com>
+    Signed-off-by: Matt Turner <mattst88@gmail.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 863d528a9f76d0e8f122aebf19f8564a4c67a938)
+
+commit f0823a057e4c80dbb18c16f066ad36e6459fcc85
+Author: Peter Hutterer <peter.hutterer@who-t.net>
+Date:   Tue Jul 31 16:09:38 2012 +1000
+
+    dix: make sure the mask is set for emulated scroll events (#52508)
+    
+    If a device has smooth scrolling axes, but submits scroll button events, we
+    convert those to motion events and update the valuators. For legacy button
+    events, the valuator mask is likely unset though, causing
+    add_to_scroll_valuator() to return early, leaving us with an empty mask.
+    That again skipped the rest of the code and no events were generated.
+    
+    Fix it by making sure that the scroll valuator in the mask is at least
+    initialized to 0.
+    
+    Broke evdev wheel emulation, introduced by
+    54476b5e4461ff523e935961affabcf0de12c556.
+    
+    X.Org Bug 52508 <http://bugs.freedesktop.org/show_bug.cgi?id=52508>
+    
+    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
+    (cherry picked from commit cb306a8f174bec9ded95191b91797f59250e6808)
+
+commit 1f8a958a12c1c7c684051e5679420fe3a02ce307
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Jul 23 16:34:28 2012 -0400
+
+    sync: Fix logic error from b55bf248581dc66321b24b29f199f6dc8d02db1b
+    
+    That commit adds two hunks, and I _think_ they're backwards.  It adds
+    code to modify bracket_greater on NegativeTransition triggers, and
+    bracket_less on PositiveTransition triggers.  That breaks symmetry with
+    the surrounding code; the code as of this commit could probably be
+    simplified further.
+    
+    I can't keep the sync trigger rules in my head for more than about five
+    minutes at a time, so I'm sending this on for more eyes.  RHEL 6.3's
+    xserver is shipping with b55bf248 reverted:
+    
+        https://bugzilla.redhat.com/show_bug.cgi?id=748704#c33
+    
+    And there appear to be some upstream reports of the same issue:
+    
+        https://bugzilla.gnome.org/show_bug.cgi?id=658955
+    
+    So I'd like to get this sorted out.
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 4a6f42dda00ba3b5616f8a86f0d4c9a652c7d9d4)
+
+commit 83cba78a0c858df4d5405783f3a1fb4bab128129
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Mon Jul 16 21:12:06 2012 -0700
+
+    Make indentation of dix/tables.c much more consistent and readable
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    Acked-by: Daniel Stone <daniel@fooishbar.org>
+    (cherry picked from commit c37c65052f674cd58894ad0b9ec22928a62c624e)
+
+commit b6be94d89cab650ed73c5f3ca65f3a08bb79ebae
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date:   Mon Jul 16 20:53:00 2012 -0700
+
+    Fix up formatting of initializers for arrays of structs
+    
+    The indenter seems to have gotten confused by initializing arrays of
+    structs with the struct defined inline - for predefined structs it did
+    a better job, so match that.
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+    (cherry picked from commit 9f7ef7f7f0566f6319d8328ce0a1e6d0fa866720)
+
+commit afe8ef9043a0bc3b9322448c004b3f4ce203160a
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Jul 30 14:32:11 2012 -0400
+
+    randr: Fix up yet another corner case in preferred mode selection
+    
+    Let's say - purely for the sake of argument, mind you - that you had a
+    server GPU with anemic memory bandwidth, and you walked up to it and
+    plugged in a monitor that was 1920x1080 because that's what happened to
+    be on the crash cart.  Say the memory bandwidth is such that anything
+    larger than 1280x1024 gets filtered away.  Now you're in trouble,
+    because the established timings section includes a 720x400 mode because
+    that's what DOS 80x25 is, and that happens to just about match the
+    physical aspect ratio.
+    
+    Instead let's reuse the logic from the existing aspect-match path: pick
+    the larger mode of either the physical aspect ratio or 4:3.
+    
+    Reviewed-by: Julien Cristau <jcristau@debian.org>
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit ff56f88616aa63797384c2c484b2bd0f194df96a)
+
+commit af8ffefc070be8cb449812100b86501db17e8fd8
+Author: Dave Airlie <airlied@redhat.com>
+Date:   Mon Jul 30 14:32:10 2012 -0400
+
+    kinput: allocate enough space for null character.
+    
+    This code wasn't allocating enough space and was assigning the NULL
+    one past the end.
+    
+    Pointed out by coverity.
+    
+    Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Dave Airlie <airlied@redhat.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 531785dd746d64ef7f473a83ca73bb20e74b6fca)
+
+commit 3a2b67577cdf0d4e3aae28883e65cf782673198a
+Author: Vic Lee <llyzs@163.com>
+Date:   Mon Jul 30 14:32:09 2012 -0400
+
+    ephyr: Resize screen automatically when parent window is resized
+    
+    Bugzilla: https://bugs.freedesktop.org/25804
+    Reviewed-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Vic Lee <llyzs@163.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit 8843aed82e7d69422e7763a35832a2be8f26723f)
+
+commit 7749c58134022bc6718150c3bb81f18b07687674
+Author: Adam Jackson <ajax@redhat.com>
+Date:   Mon Jul 30 14:32:08 2012 -0400
+
+    ephyr: Fix up some bizarre formatting
+    
+    Signed-off-by: Adam Jackson <ajax@redhat.com>
+    Signed-off-by: Keith Packard <keithp@keithp.com>
+    (cherry picked from commit b46bbafae6d0a8b3f2f7853d5c1475fc223b1ed6)
+
 commit ab46bdec65b4b1150ffa0aa4d9f3142e7e89cef9
 Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 Date:   Fri Aug 3 10:21:11 2012 -0700
diff --git a/debian/changelog b/debian/changelog
index 6d8cba6..10f2764 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,13 +1,15 @@
-xorg-server (2:1.12.3.901-1) UNRELEASED; urgency=low
+xorg-server (2:1.12.3.902-1) UNRELEASED; urgency=low
 
   * New upstream release candidate
     + glx: Free DRI2 drawable reference to destroyed GLX drawable
       (closes: #681265, #674668)
+    + dix: make sure the mask is set for emulated scroll events
+      (closes: #684051)
   * 03_fix-panning.diff: disable cursor confinement when panning is enabled
     (closes: #643693)
   * Video ABI bumped to 12.1, serverminver to 2:1.12.3.901.
 
- -- Julien Cristau <jcristau@debian.org>  Fri, 03 Aug 2012 20:17:43 +0200
+ -- Julien Cristau <jcristau@debian.org>  Tue, 21 Aug 2012 19:50:31 +0200
 
 xorg-server (2:1.12.3-1) unstable; urgency=low
 

commit a6d7400507f220d6f98b853def7904586fb1eadd
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Sun Aug 19 09:07:33 2012 -0700

    configure.ac: Version bump to 1.12.3.902 (1.12.4 RC2)
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>

diff --git a/configure.ac b/configure.ac
index aece819..28c9cf8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -26,8 +26,8 @@ dnl
 dnl Process this file with autoconf to create configure.
 
 AC_PREREQ(2.60)
-AC_INIT([xorg-server], 1.12.3.901, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
-RELEASE_DATE="2012-08-03"
+AC_INIT([xorg-server], 1.12.3.902, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
+RELEASE_DATE="2012-08-19"
 AC_CONFIG_SRCDIR([Makefile.am])
 AM_INIT_AUTOMAKE([foreign dist-bzip2])
 AM_MAINTAINER_MODE

commit 0754f74a538ca59e45a39fefa2d90b9d3bc822dd
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Thu Aug 16 19:42:54 2012 -0700

    XQuartz: console_redirect: Properly zero-out the tail of the array on realloc()
    
    We forgot to multiply by sizeof(), so it wasn't fully zeroed out.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    (cherry picked from commit 7c3d2e4828deb4e8ec38e8ef88d6f92b2d931033)

diff --git a/hw/xquartz/console_redirect.c b/hw/xquartz/console_redirect.c
index 30e397a..8fdce46 100644
--- a/hw/xquartz/console_redirect.c
+++ b/hw/xquartz/console_redirect.c
@@ -365,8 +365,8 @@ xq_asl_log_fd(aslclient asl, aslmsg msg, int level, int fd)
                               BLOCK_DONE;
                           }
                           redirect_fds = new_array;
-                          memset(redirect_fds + n_redirect_fds, 0, new_n -
-                                 n_redirect_fds);
+                          memset(redirect_fds + n_redirect_fds, 0, (new_n -
+                                 n_redirect_fds) * sizeof(*redirect_fds));
                           n_redirect_fds = new_n;
                       }
 

commit 2141f21d51b0787c8d287bb50d01a6a81e61a634
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
Date:   Thu Aug 16 15:43:34 2012 -0700

    XQuartz: console_redirect: Set the correct location for reading into the buffer
    
    Prior to this change, it was possible that a large message would have some
    of its data prepended to subsequent messages due to our not incorrectly
    setting the location to write into the buffer.
    
    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
    (cherry picked from commit a32e01802ff1c938c0afe0cc007a273b9ada8610)

diff --git a/hw/xquartz/console_redirect.c b/hw/xquartz/console_redirect.c
index 91d693b..30e397a 100644
--- a/hw/xquartz/console_redirect.c
+++ b/hw/xquartz/console_redirect.c
@@ -110,27 +110,33 @@ _read_redirect(int fd, int flush)
         /* Increment our returned number read */
         total_read += nbytes;
 
-        nbytes += (aslr->w - aslr->buf);
-        aslr->buf[nbytes] = '\0';
+        /* Increment our write location */
+        aslr->w += nbytes;
+        aslr->w[0] = '\0';
 
         /* One line at a time */
-        for (p = aslr->buf; *p && (p - aslr->buf) < nbytes; p = s + 1) {
+        for (p = aslr->buf; p < aslr->w; p = s + 1) {
             // Find null or \n
             for (s = p; *s && *s != '\n'; s++) ;
             if (*s == '\n') {
                 *s = '\0';
+            }
+
+            if (s < aslr->w || aslr->buf == p) {
+                /* Either the first of multiple messages or one message which is larger than our buffer */
                 asl_log(aslr->asl, aslr->msg, aslr->level, "%s", p);
             }
-            else if (aslr->buf != p) {
+            else {
+                /* We reached the end of the buffer, move this chunk to the start. */
                 memmove(aslr->buf, p, BUF_SIZE - (p - aslr->buf));
                 aslr->w = aslr->buf + (s - p);
                 break;
             }
-            else if (nbytes == BUF_SIZE - 1) {
-                asl_log(aslr->asl, aslr->msg, aslr->level, "%s", p);
-                aslr->w = aslr->buf;
-                break;
-            }
+        }
+
+        if (p == aslr->w) {
+            /* Start writing at the beginning in the case where we flushed */
+            aslr->w = aslr->buf;
         }
     }
 

commit 73d62f1aaea4a862cc512048cb6ca59586f4cdb6
Author: Keith Packard <keithp@keithp.com>
Date:   Tue Aug 7 17:49:46 2012 -0700

    Only free Render filter names on last screen close
    
    Hotplugging screens causes the render filter names to get freed while
    still in use; wait for the last core screen to be closed before
    freeing them. That only happens at server reset, when we want them to
    be freed.
    
    Signed-off-by: Keith Packard <keithp@keithp.com>
    Reviewed-by: Dave Airlie <airlied@redhat.com>
    (cherry picked from commit 19772670e3041fe1c7f5bbf32fa039a6d8245ccb)

diff --git a/render/filter.c b/render/filter.c
index 8c401ee..019ea7f 100644
--- a/render/filter.c
+++ b/render/filter.c
@@ -273,7 +273,10 @@ PictureResetFilters(ScreenPtr pScreen)
 
     free(ps->filters);
     free(ps->filterAliases);
-    PictureFreeFilterIds();
+
+    /* Free the filters when the last screen is closed */
+    if (pScreen->myNum == 0)
+        PictureFreeFilterIds();
 }
 
 int

commit 3e62f48edf47a59d923ac58b6d4262b02456a556
Author: Simon Schubert <2@0x2c.org>
Date:   Sun Aug 12 09:40:16 2012 -0700

    fb: reorder Bresenham error correction to avoid overshoot.
    
    When fbBresSolid draws a line, it can happen that after the last
    pixel, the Bresenham error term overflows, and fbBresSolid paints
    another pixel before adjusting the error term.
    
    However, if this happens on the last pixel (len=0), this extra pixel
    might overshoot the boundary, and, in rare cases, lead to a segfault.
    
    Fix this issue by adjusting for the Bresenham error term before
    drawing the main pixel, not after.
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=24274
    Signed-off-by: Simon Schubert <2@0x2c.or>
    Tested-by: Mitch Davis <mjd+freedesktop.org@afork.com>
    Signed-off-by: Matt Turner <mattst88@gmail.com>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    (cherry picked from commit 863d528a9f76d0e8f122aebf19f8564a4c67a938)

diff --git a/fb/fbseg.c b/fb/fbseg.c
index 0e4e0a9..1848387 100644
--- a/fb/fbseg.c
+++ b/fb/fbseg.c
@@ -65,6 +65,12 @@ fbBresSolid(DrawablePtr pDrawable,
     if (axis == X_AXIS) {
         bits = 0;
         while (len--) {
+            if (e >= 0) {
+                WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, bits));
+                bits = 0;
+                dst += dstStride;
+                e += e3;
+            }
             bits |= mask;
             mask = fbBresShiftMask(mask, signdx, dstBpp);
             if (!mask) {
@@ -74,21 +80,12 @@ fbBresSolid(DrawablePtr pDrawable,
                 mask = mask0;
             }
             e += e1;
-            if (e >= 0) {
-                WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, bits));
-                bits = 0;
-                dst += dstStride;
-                e += e3;
-            }
         }
         if (bits)
             WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, bits));
     }
     else {
         while (len--) {
-            WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, mask));
-            dst += dstStride;
-            e += e1;
             if (e >= 0) {
                 e += e3;
                 mask = fbBresShiftMask(mask, signdx, dstBpp);
@@ -97,6 +94,9 @@ fbBresSolid(DrawablePtr pDrawable,
                     mask = mask0;
                 }
             }
+            WRITE(dst, FbDoMaskRRop(READ(dst), and, xor, mask));
+            dst += dstStride;
+            e += e1;
         }
     }
 

commit f0823a057e4c80dbb18c16f066ad36e6459fcc85
Author: Peter Hutterer <peter.hutterer@who-t.net>
Date:   Tue Jul 31 16:09:38 2012 +1000

    dix: make sure the mask is set for emulated scroll events (#52508)
    
    If a device has smooth scrolling axes, but submits scroll button events, we
    convert those to motion events and update the valuators. For legacy button
    events, the valuator mask is likely unset though, causing
    add_to_scroll_valuator() to return early, leaving us with an empty mask.
    That again skipped the rest of the code and no events were generated.
    
    Fix it by making sure that the scroll valuator in the mask is at least
    initialized to 0.
    
    Broke evdev wheel emulation, introduced by
    54476b5e4461ff523e935961affabcf0de12c556.
    
    X.Org Bug 52508 <http://bugs.freedesktop.org/show_bug.cgi?id=52508>
    
    Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
    Reviewed-by: Chase Douglas <chase.douglas@canonical.com>
    (cherry picked from commit cb306a8f174bec9ded95191b91797f59250e6808)

diff --git a/dix/getevents.c b/dix/getevents.c
index b78d5ce..fade40c 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -1601,6 +1601,8 @@ GetPointerEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
 
         if (adj != 0.0 && axis != -1) {
             adj *= pDev->valuator->axes[axis].scroll.increment;
+            if (!valuator_mask_isset(&mask, axis))
+                valuator_mask_set(&mask, axis, 0);
             add_to_scroll_valuator(pDev, &mask, axis, adj);
             type = MotionNotify;
             buttons = 0;

commit 1f8a958a12c1c7c684051e5679420fe3a02ce307
Author: Adam Jackson <ajax@redhat.com>
Date:   Mon Jul 23 16:34:28 2012 -0400

    sync: Fix logic error from b55bf248581dc66321b24b29f199f6dc8d02db1b
    
    That commit adds two hunks, and I _think_ they're backwards.  It adds
    code to modify bracket_greater on NegativeTransition triggers, and
    bracket_less on PositiveTransition triggers.  That breaks symmetry with
    the surrounding code; the code as of this commit could probably be
    simplified further.
    
    I can't keep the sync trigger rules in my head for more than about five
    minutes at a time, so I'm sending this on for more eyes.  RHEL 6.3's
    xserver is shipping with b55bf248 reverted:
    
        https://bugzilla.redhat.com/show_bug.cgi?id=748704#c33
    
    And there appear to be some upstream reports of the same issue:
    
        https://bugzilla.gnome.org/show_bug.cgi?id=658955
    
    So I'd like to get this sorted out.
    
    Signed-off-by: Adam Jackson <ajax@redhat.com>
    Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
    Signed-off-by: Keith Packard <keithp@keithp.com>
    (cherry picked from commit 4a6f42dda00ba3b5616f8a86f0d4c9a652c7d9d4)

diff --git a/Xext/sync.c b/Xext/sync.c
index 532cb64..c9162ee 100644
--- a/Xext/sync.c
+++ b/Xext/sync.c
@@ -1033,15 +1033,15 @@ SyncComputeBracketValues(SyncCounter * pCounter)
                 pnewltval = &psci->bracket_less;
             }
             else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
-                     XSyncValueLessThan(pTrigger->test_value,
-                                        psci->bracket_greater)) {
+                     XSyncValueGreaterThan(pTrigger->test_value,
+                                           psci->bracket_less)) {
                 /*
                  * The value is exactly equal to our threshold.  We want one
-                 * more event in the positive direction to ensure we pick up
-                 * when the value *exceeds* this threshold.
+                 * more event in the negative direction to ensure we pick up
+                 * when the value is less than this threshold.
                  */
-                psci->bracket_greater = pTrigger->test_value;
-                pnewgtval = &psci->bracket_greater;
+                psci->bracket_less = pTrigger->test_value;
+                pnewltval = &psci->bracket_less;
             }
         }
         else if (pTrigger->test_type == XSyncPositiveTransition &&
@@ -1053,15 +1053,15 @@ SyncComputeBracketValues(SyncCounter * pCounter)
                 pnewgtval = &psci->bracket_greater;
             }
             else if (XSyncValueEqual(pCounter->value, pTrigger->test_value) &&
-                     XSyncValueGreaterThan(pTrigger->test_value,
-                                           psci->bracket_less)) {
+                     XSyncValueLessThan(pTrigger->test_value,
+                                        psci->bracket_greater)) {
                 /*
                  * The value is exactly equal to our threshold.  We want one
-                 * more event in the negative direction to ensure we pick up
-                 * when the value is less than this threshold.
+                 * more event in the positive direction to ensure we pick up
+                 * when the value *exceeds* this threshold.
                  */
-                psci->bracket_less = pTrigger->test_value;
-                pnewltval = &psci->bracket_less;
+                psci->bracket_greater = pTrigger->test_value;
+                pnewgtval = &psci->bracket_greater;
             }
         }
     }                           /* end for each trigger */

commit 83cba78a0c858df4d5405783f3a1fb4bab128129
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date:   Mon Jul 16 21:12:06 2012 -0700

    Make indentation of dix/tables.c much more consistent and readable
    
    Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
    Acked-by: Daniel Stone <daniel@fooishbar.org>
    (cherry picked from commit c37c65052f674cd58894ad0b9ec22928a62c624e)

diff --git a/dix/tables.c b/dix/tables.c
index 705ef0d..686cddd 100644
--- a/dix/tables.c
+++ b/dix/tables.c
@@ -58,364 +58,529 @@ SOFTWARE.
 #include "swaprep.h"
 #include "swapreq.h"
 
-int (*InitialVector[3]) (ClientPtr      /* client */
-    ) = {
-0, ProcInitialConnection, ProcEstablishConnection};
+int (*InitialVector[3]) (ClientPtr /* client */) = {
+    0,
+    ProcInitialConnection,
+    ProcEstablishConnection
+};
 
-int (*ProcVector[256]) (ClientPtr       /* client */
-    ) = {
-    ProcBadRequest, ProcCreateWindow, ProcChangeWindowAttributes, ProcGetWindowAttributes, ProcDestroyWindow, ProcDestroySubwindows,    /* 5 */
-        ProcChangeSaveSet, ProcReparentWindow, ProcMapWindow, ProcMapSubwindows, ProcUnmapWindow,       /* 10 */
-        ProcUnmapSubwindows, ProcConfigureWindow, ProcCirculateWindow, ProcGetGeometry, ProcQueryTree,  /* 15 */
-        ProcInternAtom, ProcGetAtomName, ProcChangeProperty, ProcDeleteProperty, ProcGetProperty,       /* 20 */
-        ProcListProperties, ProcSetSelectionOwner, ProcGetSelectionOwner, ProcConvertSelection, ProcSendEvent,  /* 25 */
-        ProcGrabPointer, ProcUngrabPointer, ProcGrabButton, ProcUngrabButton, ProcChangeActivePointerGrab,      /* 30 */
-        ProcGrabKeyboard, ProcUngrabKeyboard, ProcGrabKey, ProcUngrabKey, ProcAllowEvents,      /* 35 */
-        ProcGrabServer, ProcUngrabServer, ProcQueryPointer, ProcGetMotionEvents, ProcTranslateCoords,   /* 40 */
-        ProcWarpPointer, ProcSetInputFocus, ProcGetInputFocus, ProcQueryKeymap, ProcOpenFont,   /* 45 */
-        ProcCloseFont, ProcQueryFont, ProcQueryTextExtents, ProcListFonts, ProcListFontsWithInfo,       /* 50 */
-        ProcSetFontPath, ProcGetFontPath, ProcCreatePixmap, ProcFreePixmap, ProcCreateGC,       /* 55 */
-        ProcChangeGC, ProcCopyGC, ProcSetDashes, ProcSetClipRectangles, ProcFreeGC,     /* 60 */
-        ProcClearToBackground, ProcCopyArea, ProcCopyPlane, ProcPolyPoint, ProcPolyLine,        /* 65 */
-        ProcPolySegment, ProcPolyRectangle, ProcPolyArc, ProcFillPoly, ProcPolyFillRectangle,   /* 70 */
-        ProcPolyFillArc, ProcPutImage, ProcGetImage, ProcPolyText, ProcPolyText,        /* 75 */
-        ProcImageText8, ProcImageText16, ProcCreateColormap, ProcFreeColormap, ProcCopyColormapAndFree, /* 80 */
-        ProcInstallColormap, ProcUninstallColormap, ProcListInstalledColormaps, ProcAllocColor, ProcAllocNamedColor,    /* 85 */
-        ProcAllocColorCells, ProcAllocColorPlanes, ProcFreeColors, ProcStoreColors, ProcStoreNamedColor,        /* 90 */
-        ProcQueryColors, ProcLookupColor, ProcCreateCursor, ProcCreateGlyphCursor, ProcFreeCursor,      /* 95 */
-        ProcRecolorCursor, ProcQueryBestSize, ProcQueryExtension, ProcListExtensions, ProcChangeKeyboardMapping,        /* 100 */
-        ProcGetKeyboardMapping, ProcChangeKeyboardControl, ProcGetKeyboardControl, ProcBell, ProcChangePointerControl,  /* 105 */
-        ProcGetPointerControl, ProcSetScreenSaver, ProcGetScreenSaver, ProcChangeHosts, ProcListHosts,  /* 110 */
-        ProcChangeAccessControl, ProcChangeCloseDownMode, ProcKillClient, ProcRotateProperties, ProcForceScreenSaver,   /* 115 */
-        ProcSetPointerMapping, ProcGetPointerMapping, ProcSetModifierMapping, ProcGetModifierMapping, ProcBadRequest,   /* 120 */
-        ProcBadRequest, ProcBadRequest, ProcBadRequest, ProcBadRequest, ProcBadRequest, /* 125 */
-ProcBadRequest,
-        ProcNoOperation,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest,
-        ProcBadRequest, ProcBadRequest, ProcBadRequest, ProcBadRequest};
+int (*ProcVector[256]) (ClientPtr /* client */) = {
+    ProcBadRequest,
+    ProcCreateWindow,
+    ProcChangeWindowAttributes,
+    ProcGetWindowAttributes,
+    ProcDestroyWindow,
+    ProcDestroySubwindows,              /* 5 */
+    ProcChangeSaveSet,
+    ProcReparentWindow,
+    ProcMapWindow,
+    ProcMapSubwindows,
+    ProcUnmapWindow,                    /* 10 */
+    ProcUnmapSubwindows,
+    ProcConfigureWindow,
+    ProcCirculateWindow,
+    ProcGetGeometry,
+    ProcQueryTree,                      /* 15 */
+    ProcInternAtom,
+    ProcGetAtomName,
+    ProcChangeProperty,
+    ProcDeleteProperty,
+    ProcGetProperty,                    /* 20 */
+    ProcListProperties,
+    ProcSetSelectionOwner,
+    ProcGetSelectionOwner,
+    ProcConvertSelection,
+    ProcSendEvent,                      /* 25 */
+    ProcGrabPointer,
+    ProcUngrabPointer,
+    ProcGrabButton,
+    ProcUngrabButton,
+    ProcChangeActivePointerGrab,        /* 30 */
+    ProcGrabKeyboard,
+    ProcUngrabKeyboard,
+    ProcGrabKey,
+    ProcUngrabKey,
+    ProcAllowEvents,                    /* 35 */
+    ProcGrabServer,
+    ProcUngrabServer,
+    ProcQueryPointer,
+    ProcGetMotionEvents,
+    ProcTranslateCoords,                /* 40 */


Reply to: