summaryrefslogtreecommitdiff
path: root/src/intel_dri.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2012-06-04 11:59:24 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2012-06-04 11:59:24 +0100
commit7424ea7dd08e304baa4efa09e887b833737ac9f6 (patch)
tree9acee5d14193552d52f0b75f03a768a257817bf4 /src/intel_dri.c
parentebd6dea009479e612c67d78416b8680bb23dba94 (diff)
uxa/dri: Free wait_info along DRI2WaitMSC error paths
Reported-by: Zdenek Kabelac <zkabelac@redhat.com> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'src/intel_dri.c')
-rw-r--r--src/intel_dri.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/intel_dri.c b/src/intel_dri.c
index a1778159..4890fe49 100644
--- a/src/intel_dri.c
+++ b/src/intel_dri.c
@@ -1522,7 +1522,7 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
strerror(errno));
limit--;
}
- goto out_complete;
+ goto out_free;
}
current_msc = vbl.reply.sequence;
@@ -1556,7 +1556,7 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
strerror(errno));
limit--;
}
- goto out_complete;
+ goto out_free;
}
wait_info->frame = vbl.reply.sequence;
@@ -1595,7 +1595,7 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
strerror(errno));
limit--;
}
- goto out_complete;
+ goto out_free;
}
wait_info->frame = vbl.reply.sequence;
@@ -1603,6 +1603,8 @@ I830DRI2ScheduleWaitMSC(ClientPtr client, DrawablePtr draw, CARD64 target_msc,
return TRUE;
+out_free:
+ i830_dri2_del_frame_event(draw, wait_info);
out_complete:
DRI2WaitMSCComplete(client, draw, target_msc, 0, 0);
return TRUE;