From abbe7e8401f3ffdc40c2ff4bf16fa9801fbd0610 Mon Sep 17 00:00:00 2001 From: Mihai Moldovan Date: Sat, 21 Jun 2014 23:04:16 +0200 Subject: Add 990_fix-DEBUG-and-TEST-builds.full.patch. Fix debug builds (e.g. when globally setting -DDEBUG and -DTEST at build time). --- .../990_fix-DEBUG-and-TEST-builds.full.patch | 69 ++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 debian/patches/990_fix-DEBUG-and-TEST-builds.full.patch (limited to 'debian/patches/990_fix-DEBUG-and-TEST-builds.full.patch') diff --git a/debian/patches/990_fix-DEBUG-and-TEST-builds.full.patch b/debian/patches/990_fix-DEBUG-and-TEST-builds.full.patch new file mode 100644 index 000000000..0fef1a900 --- /dev/null +++ b/debian/patches/990_fix-DEBUG-and-TEST-builds.full.patch @@ -0,0 +1,69 @@ +Author: Mihai Moldovan +Description: Several fixes for building debug versions of NX +Abstract: + (1) In nx-X11/programs/Xserver/dix: + . + Fix several compile errors when specifying -DDEBUG globally. Previous GCC + versions were more liberal and the code thus compiled. + . + Also initialize/reset a count variable correctly. + . + . + (2) In nx-X11/programs/Xserver/hw/nxagent/Render.c: + . + Check for pSrc->pDrawable to exist instead of having nxagent segfault when + it does not. + . + This enables the possibility of compiling all nxagent modules in TEST mode. + +--- a/nx-X11/programs/Xserver/dix/dixfonts.c ++++ b/nx-X11/programs/Xserver/dix/dixfonts.c +@@ -2203,7 +2203,7 @@ + byte = 0; + for (l = 0; l <= (cip->metrics.rightSideBearing - + cip->metrics.leftSideBearing); l++) { +- if (maskTab[l & 7] & row[l >> 3]) ++ if (maskTab[l & 7] & (((int*)row)[l >> 3])) + putchar('X'); + else + putchar('.'); +--- a/nx-X11/programs/Xserver/hw/nxagent/Render.c ++++ b/nx-X11/programs/Xserver/hw/nxagent/Render.c +@@ -1678,10 +1678,11 @@ + + #ifdef TEST + +- fprintf(stderr, "nxagentTrapezoids: Source is a [%s] of geometry [%d,%d].\n", +- (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP ? "pixmap" : "window"), +- pSrc -> pDrawable -> width, pSrc -> pDrawable -> height); +- ++ if (pSrc->pDrawable) { ++ fprintf(stderr, "nxagentTrapezoids: Source is a [%s] of geometry [%d,%d].\n", ++ (pSrc -> pDrawable -> type == DRAWABLE_PIXMAP ? "pixmap" : "window"), ++ pSrc -> pDrawable -> width, pSrc -> pDrawable -> height); ++ } + if (pSrc ->pDrawable != pDst -> pDrawable) + { + fprintf(stderr, "nxagentTrapezoids: Destination is a [%s] of geometry [%d,%d].\n", +--- a/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c ++++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXdispatch.c +@@ -734,7 +734,7 @@ + + client->sequence++; + #ifdef DEBUG +- if (client->requestLogIndex == MAX_REQUEST_LOG) ++ if ((client->requestLogIndex >= MAX_REQUEST_LOG) || (client->requestLogIndex <= 0)) + client->requestLogIndex = 0; + client->requestLog[client->requestLogIndex] = MAJOROP; + client->requestLogIndex++; +--- a/nx-X11/programs/Xserver/hw/nxagent/X/NXdixfonts.c ++++ b/nx-X11/programs/Xserver/hw/nxagent/X/NXdixfonts.c +@@ -2351,7 +2351,7 @@ + byte = 0; + for (l = 0; l <= (cip->metrics.rightSideBearing - + cip->metrics.leftSideBearing); l++) { +- if (maskTab[l & 7] & row[l >> 3]) ++ if (maskTab[l & 7] & (((int *)row)[l >> 3])) + putchar('X'); + else + putchar('.'); -- cgit v1.2.3