summaryrefslogtreecommitdiff
path: root/lib/libX11/src/xcms
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@cvs.openbsd.org>2024-08-04 17:15:58 +0000
committerMatthieu Herrb <matthieu@cvs.openbsd.org>2024-08-04 17:15:58 +0000
commitc02d440306a407b23961ad200094196cb5a8b6e6 (patch)
tree3314b0ce2d35d7e7d50fecb35a2d9df8e37f35ef /lib/libX11/src/xcms
parent75dee10ef366b2e9b772f7cbdaa9e81375e9c65f (diff)
Update to libX11 1.8.10. tested by and ok rsadowski@
Diffstat (limited to 'lib/libX11/src/xcms')
-rw-r--r--lib/libX11/src/xcms/cmsCmap.c14
-rw-r--r--lib/libX11/src/xcms/cmsTrig.c4
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/libX11/src/xcms/cmsCmap.c b/lib/libX11/src/xcms/cmsCmap.c
index c7087ecb1..4b229477b 100644
--- a/lib/libX11/src/xcms/cmsCmap.c
+++ b/lib/libX11/src/xcms/cmsCmap.c
@@ -87,12 +87,17 @@ CmapRecForColormap(
_XAsyncHandler async;
_XAsyncErrorState async_state;
+ LockDisplay(dpy);
for (pRec = (XcmsCmapRec *)dpy->cms.clientCmaps; pRec != NULL;
pRec = pRec->pNext) {
if (pRec->cmapID == cmap) {
+ UnlockDisplay(dpy);
+ SyncHandle();
return(pRec);
}
}
+ UnlockDisplay(dpy);
+ SyncHandle();
/*
* Can't find an XcmsCmapRec associated with cmap in our records.
@@ -258,9 +263,12 @@ _XcmsAddCmapRec(
pNew->dpy = dpy;
pNew->windowID = windowID;
pNew->visual = visual;
+ LockDisplay(dpy);
pNew->pNext = (XcmsCmapRec *)dpy->cms.clientCmaps;
dpy->cms.clientCmaps = (XPointer)pNew;
dpy->free_funcs->clientCmaps = _XcmsFreeClientCmaps;
+ UnlockDisplay(dpy);
+ SyncHandle();
/*
* Note, we don't create the XcmsCCC for pNew->ccc here because
@@ -342,6 +350,7 @@ _XcmsDeleteCmapRec(
}
/* search for it in the list */
+ LockDisplay(dpy);
pPrevPtr = (XcmsCmapRec **)&dpy->cms.clientCmaps;
while ((pRec = *pPrevPtr) && (pRec->cmapID != cmap)) {
pPrevPtr = &pRec->pNext;
@@ -354,6 +363,8 @@ _XcmsDeleteCmapRec(
*pPrevPtr = pRec->pNext;
Xfree(pRec);
}
+ UnlockDisplay(dpy);
+ SyncHandle();
}
@@ -378,6 +389,7 @@ _XcmsFreeClientCmaps(
{
XcmsCmapRec *pRecNext, *pRecFree;
+ LockDisplay(dpy);
pRecNext = (XcmsCmapRec *)dpy->cms.clientCmaps;
while (pRecNext != NULL) {
pRecFree = pRecNext;
@@ -390,6 +402,8 @@ _XcmsFreeClientCmaps(
Xfree(pRecFree);
}
dpy->cms.clientCmaps = (XPointer)NULL;
+ UnlockDisplay(dpy);
+ SyncHandle();
}
diff --git a/lib/libX11/src/xcms/cmsTrig.c b/lib/libX11/src/xcms/cmsTrig.c
index b23033aa8..ebb92be5b 100644
--- a/lib/libX11/src/xcms/cmsTrig.c
+++ b/lib/libX11/src/xcms/cmsTrig.c
@@ -71,7 +71,11 @@ _XcmsModuloF(
#define XCMS_SIXTHPI 0.523598775598298820
#define XCMS_RADIANS(d) ((d) * XCMS_PI / 180.0)
#define XCMS_DEGREES(r) ((r) * 180.0 / XCMS_PI)
+#ifdef __vax__
+#define XCMS_X6_UNDERFLOWS (3.784659e-07) /* X**6 almost underflows*/
+#else
#define XCMS_X6_UNDERFLOWS (4.209340e-52) /* X**6 almost underflows */
+#endif
#define XCMS_X16_UNDERFLOWS (5.421010e-20) /* X**16 almost underflows*/
#define XCMS_CHAR_BIT 8
#define XCMS_LONG_MAX 0x7FFFFFFF