sna: Assert that sigtrap is active
Curiouser and curiouser. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
75cff26eba
commit
aae3bfeb28
|
|
@ -1035,12 +1035,13 @@ void sna_image_composite(pixman_op_t op,
|
|||
extern jmp_buf sigjmp[4];
|
||||
extern volatile sig_atomic_t sigtrap;
|
||||
|
||||
#define sigtrap_assert() assert(sigtrap == 0)
|
||||
#define sigtrap_assert_inactive() assert(sigtrap == 0)
|
||||
#define sigtrap_assert_active() assert(sigtrap > 0 && sigtrap <= ARRAY_SIZE(sigjmp))
|
||||
#define sigtrap_get() sigsetjmp(sigjmp[sigtrap++], 1)
|
||||
|
||||
static inline void sigtrap_put(void)
|
||||
{
|
||||
assert(sigtrap > 0);
|
||||
sigtrap_assert_active();
|
||||
--sigtrap;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17071,7 +17071,7 @@ void sna_accel_close(struct sna *sna)
|
|||
|
||||
void sna_accel_block_handler(struct sna *sna, struct timeval **tv)
|
||||
{
|
||||
sigtrap_assert();
|
||||
sigtrap_assert_inactive();
|
||||
|
||||
if (sna->kgem.need_retire)
|
||||
kgem_retire(&sna->kgem);
|
||||
|
|
@ -17158,11 +17158,11 @@ void sna_accel_wakeup_handler(struct sna *sna)
|
|||
_kgem_submit(&sna->kgem);
|
||||
}
|
||||
|
||||
sigtrap_assert();
|
||||
sigtrap_assert_inactive();
|
||||
}
|
||||
|
||||
void sna_accel_free(struct sna *sna)
|
||||
{
|
||||
DBG(("%s\n", __FUNCTION__));
|
||||
sigtrap_assert();
|
||||
sigtrap_assert_inactive();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -570,6 +570,7 @@ sna_composite_fb(CARD8 op,
|
|||
|
||||
assert(box->x2 > box->x1 && box->y2 > box->y1);
|
||||
|
||||
sigtrap_assert_active();
|
||||
memcpy_blt(src_pixmap->devPrivate.ptr,
|
||||
dst_pixmap->devPrivate.ptr,
|
||||
dst_pixmap->drawable.bitsPerPixel,
|
||||
|
|
@ -593,6 +594,7 @@ sna_composite_fb(CARD8 op,
|
|||
|
||||
if (src_image && dest_image && !(mask && !mask_image)) {
|
||||
if (sigtrap_get() == 0) {
|
||||
sigtrap_assert_active();
|
||||
sna_image_composite(op, src_image, mask_image, dest_image,
|
||||
src_x + src_xoff, src_y + src_yoff,
|
||||
msk_x + msk_xoff, msk_y + msk_yoff,
|
||||
|
|
@ -1094,6 +1096,7 @@ fallback:
|
|||
dst->format))
|
||||
goto fallback_composite;
|
||||
|
||||
sigtrap_assert_active();
|
||||
if (pixel == 0 &&
|
||||
box->x2 - box->x1 == pixmap->drawable.width &&
|
||||
box->y2 - box->y1 == pixmap->drawable.height) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue