mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 23:36:38 +00:00
dmabuf: Make sure that memory is unmapped before releasing it
Be sure that memory is unmapped before releasing it. https://bugzilla.gnome.org/show_bug.cgi?id=700411
This commit is contained in:
parent
612e20d4f6
commit
e90e2bb822
1 changed files with 10 additions and 9 deletions
|
@ -62,17 +62,18 @@ GST_DEBUG_CATEGORY_STATIC (dmabuf_debug);
|
|||
#define GST_CAT_DEFAULT dmabuf_debug
|
||||
|
||||
static void
|
||||
gst_dmabuf_allocator_free (GstAllocator * allocator, GstMemory * mem)
|
||||
gst_dmabuf_allocator_free (GstAllocator * allocator, GstMemory * gmem)
|
||||
{
|
||||
GstDmaBufMemory *dbmem = (GstDmaBufMemory *) mem;
|
||||
GstDmaBufMemory *mem = (GstDmaBufMemory *) gmem;
|
||||
|
||||
if (dbmem->data)
|
||||
g_warning ("Freeing memory still mapped");
|
||||
|
||||
close (dbmem->fd);
|
||||
g_mutex_clear (&dbmem->lock);
|
||||
g_slice_free (GstDmaBufMemory, dbmem);
|
||||
GST_DEBUG ("%p: freed", dbmem);
|
||||
if (mem->data) {
|
||||
g_warning (G_STRLOC ":%s: Freeing memory %p still mapped", G_STRFUNC, mem);
|
||||
munmap ((void *) mem->data, mem->mmap_size);
|
||||
}
|
||||
close (mem->fd);
|
||||
g_mutex_clear (&mem->lock);
|
||||
g_slice_free (GstDmaBufMemory, mem);
|
||||
GST_DEBUG ("%p: freed", mem);
|
||||
}
|
||||
|
||||
static gpointer
|
||||
|
|
Loading…
Reference in a new issue