[X2go-Commits] nx-libs.git - master (branch) updated: redist-client/3.5.0.12-5-g45311f7
X2Go dev team
git-admin at x2go.org
Fri May 11 12:48:52 CEST 2012
The branch, master has been updated
via 45311f783acad296d37a248fb2c702c578ac3059 (commit)
from 4372dfa53207a3247b8c317392f2672191b54fdf (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 45311f783acad296d37a248fb2c702c578ac3059
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date: Fri May 11 12:48:36 2012 +0200
Add patch: 120_nxagent_libcairo-null-source-drawables.full.patch, solves crashes of GTK applications based on libcairo 1.12.1+.
-----------------------------------------------------------------------
Summary of changes:
debian/changelog | 5 +
...agent_libcairo-null-source-drawables.full.patch | 130 ++++++++++++++++++++
debian/patches/series | 1 +
3 files changed, 136 insertions(+), 0 deletions(-)
create mode 100644 debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index da4999c..143717e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,7 +1,12 @@
nx-libs (2:3.5.0.13-0) UNRELEASED; urgency=low
+ [ Mike Gabriel ]
* Let nxagent Debian package depend on xfonts-base.
+ [ Jim Burnes ]
+ * Add patch: 120_nxagent_libcairo-null-source-drawables.full.patch, solves
+ crashes of GTK applications based on libcairo 1.12.1+.
+
-- Mike Gabriel <mike.gabriel at das-netzwerkteam.de> Wed, 07 Mar 2012 21:01:21 +0100
nx-libs (2:3.5.0.12-0) unstable; urgency=low
diff --git a/debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch b/debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch
new file mode 100644
index 0000000..66af325
--- /dev/null
+++ b/debian/patches/120_nxagent_libcairo-null-source-drawables.full.patch
@@ -0,0 +1,130 @@
+--- a/nx-X11/programs/Xserver/hw/nxagent/Render.c
++++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c
+@@ -995,6 +995,36 @@
+ #endif
+ }
+
++
++int nxagentShouldDeferComposite(PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst)
++{
++
++int drawableDst;
++int linkDeferred;
++int unSyncedSrcMask;
++
++ drawableDst = ( nxagentRenderVersionMajor == 0 &&
++ nxagentRenderVersionMinor == 8 &&
++ (pDst) -> pDrawable -> type == DRAWABLE_PIXMAP
++ );
++
++ linkDeferred = ( nxagentOption(DeferLevel) >= 2 &&
++ nxagentOption(LinkType) < LINK_TYPE_ADSL
++ );
++
++ unSyncedSrcMask = ( nxagentOption(DeferLevel) == 1 &&
++ (pDst) -> pDrawable -> type == DRAWABLE_PIXMAP &&
++ (
++ (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)) ||
++ ((pMask) && pMask -> pDrawable && (nxagentDrawableStatus((pMask) -> pDrawable) == NotSynchronized))
++ )
++ );
++
++
++ return drawableDst || linkDeferred || unSyncedSrcMask;
++}
++
++
+ void nxagentComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask, PicturePtr pDst,
+ INT16 xSrc, INT16 ySrc, INT16 xMask, INT16 yMask, INT16 xDst,
+ INT16 yDst, CARD16 width, CARD16 height)
+@@ -1036,8 +1066,8 @@
+ }
+
+ #endif
+-
+- if (NXAGENT_SHOULD_DEFER_COMPOSITE(pSrc, pMask, pDst))
++ /* if (NXAGENT_SHOULD_DEFER_COMPOSITE(pSrc, pMask, pDst)) */
++ if (nxagentShouldDeferComposite(pSrc, pMask, pDst))
+ {
+ pDstRegion = nxagentCreateRegion(pDst -> pDrawable, NULL, xDst, yDst, width, height);
+
+@@ -1095,7 +1125,8 @@
+ }
+ }
+
+- if (pMask != NULL && pMask -> pDrawable != pSrc -> pDrawable &&
++ if ((pMask) && (pMask->pDrawable) &&
++ pMask -> pDrawable != pSrc -> pDrawable &&
+ pMask -> pDrawable != pDst -> pDrawable)
+ {
+ nxagentSynchronizeShmPixmap(pMask -> pDrawable, xMask, yMask, width, height);
+@@ -1259,7 +1290,7 @@
+ * on the real X server.
+ */
+
+- if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++ if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+ {
+ #ifdef TEST
+ fprintf(stderr, "nxagentGlyphs: Synchronizing source [%s] at [%p].\n",
+@@ -1302,14 +1333,15 @@
+ nxagentSynchronizeBox(pSrc -> pDrawable, &glyphBox, NEVER_BREAK);
+ }
+
+- if (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP)
++ if (pSrc -> pDrawable && (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP))
+ {
+ nxagentIncreasePixmapUsageCounter((PixmapPtr) pSrc -> pDrawable);
+ }
+ }
+
+- if (pSrc -> pDrawable != pDst -> pDrawable &&
+- nxagentDrawableStatus(pDst -> pDrawable) == NotSynchronized)
++
++ if (pSrc -> pDrawable && (pSrc -> pDrawable != pDst -> pDrawable &&
++ nxagentDrawableStatus(pDst -> pDrawable) == NotSynchronized))
+ {
+ #ifdef TEST
+ fprintf(stderr, "nxagentGlyphs: Synchronizing destination [%s] at [%p].\n",
+@@ -1749,7 +1781,9 @@
+ return;
+ }
+
+- if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++ /* the following blocks need fixing to ignore null values of pDrawable */
++
++ if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+ {
+ #ifdef TEST
+ fprintf(stderr, "nxagentTrapezoids: Going to synchronize the source drawable at [%p].\n",
+@@ -1843,7 +1877,9 @@
+ * operation like nxagentTrapezoids() does.
+ */
+
+- if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++
++
++ if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+ {
+ #ifdef TEST
+ fprintf(stderr, "nxagentTriangles: Going to synchronize the source drawable at [%p].\n",
+@@ -1920,7 +1956,8 @@
+ * operation like nxagentTrapezoids() does.
+ */
+
+- if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++
++ if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+ {
+ #ifdef TEST
+ fprintf(stderr, "nxagentTriStrip: Going to synchronize the source drawable at [%p].\n",
+@@ -1997,7 +2034,8 @@
+ * operation like nxagentTrapezoids() does.
+ */
+
+- if (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized)
++
++ if (pSrc -> pDrawable && (nxagentDrawableStatus(pSrc -> pDrawable) == NotSynchronized))
+ {
+ #ifdef TEST
+ fprintf(stderr, "nxagentTriFan: Going to synchronize the source drawable at [%p].\n",
diff --git a/debian/patches/series b/debian/patches/series
index dc42d85..0e7726a 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -35,6 +35,7 @@
108_nxagent_wine-close-delay.full.patch
109_nxagent_locale-utf8-compound-text.full.patch
110_nxagent_createpixmap-bounds-check.full.patch
+120_nxagent_libcairo-null-source-drawables.full.patch
200_nxagent_check-binary-x2go-flavour.full.patch
201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch
202_nx-x11_enable-xinerama.full.patch
hooks/post-receive
--
nx-libs.git (NX (redistributed))
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "nx-libs.git" (NX (redistributed)).
More information about the x2go-commits
mailing list