sna/dri: Add a bunch of assertions for hunting a use-after-free
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
d875609147
commit
d2dbb99138
|
|
@ -2495,6 +2495,7 @@ sna_page_flip(struct sna *sna,
|
|||
int count;
|
||||
|
||||
DBG(("%s: handle %d attached\n", __FUNCTION__, bo->handle));
|
||||
assert(bo->refcnt);
|
||||
|
||||
kgem_submit(&sna->kgem);
|
||||
|
||||
|
|
|
|||
|
|
@ -115,6 +115,7 @@ get_private(DRI2Buffer2Ptr buffer)
|
|||
|
||||
static inline struct kgem_bo *ref(struct kgem_bo *bo)
|
||||
{
|
||||
assert(bo->refcnt);
|
||||
bo->refcnt++;
|
||||
return bo;
|
||||
}
|
||||
|
|
@ -877,6 +878,8 @@ sna_dri_remove_frame_event(WindowPtr win,
|
|||
|
||||
while (chain->chain != info)
|
||||
chain = chain->chain;
|
||||
assert(chain != info);
|
||||
assert(info->chain != chain);
|
||||
chain->chain = info->chain;
|
||||
}
|
||||
|
||||
|
|
@ -912,8 +915,11 @@ sna_dri_add_frame_event(DrawablePtr draw, struct sna_dri_frame_event *info)
|
|||
return;
|
||||
}
|
||||
|
||||
assert(chain != info);
|
||||
while (chain->chain != NULL)
|
||||
chain = chain->chain;
|
||||
|
||||
assert(chain != info);
|
||||
chain->chain = info;
|
||||
}
|
||||
|
||||
|
|
@ -2031,6 +2037,7 @@ blit:
|
|||
CREATE_SCANOUT | CREATE_EXACT);
|
||||
name = kgem_bo_flink(&sna->kgem, bo);
|
||||
}
|
||||
assert(bo->refcnt);
|
||||
get_private(info->back)->bo = bo;
|
||||
info->back->name = name;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue