vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Mon Oct 27 21:05:00 2014 +0200| [1d2dcf803ab88fa85514d1f4843c6838cd6f408a] | committer: Rémi Denis-Courmont
picture_pool: remove unnecessary special case We can offload the picture deletion to Destroy() in all cases. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1d2dcf803ab88fa85514d1f4843c6838cd6f408a --- src/misc/picture_pool.c | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/misc/picture_pool.c b/src/misc/picture_pool.c index 294d671..86b30ac 100644 --- a/src/misc/picture_pool.c +++ b/src/misc/picture_pool.c @@ -209,16 +209,12 @@ void picture_pool_Delete(picture_pool_t *pool) assert(!pool->picture_reserved[i]); - /* Restore the original garbage collector */ - if (atomic_fetch_add(&picture->gc.refcount, 1) == 0) - { /* Simple case: the picture is not locked, destroy it now. */ - picture->gc.pf_destroy = gc_sys->destroy; - picture->gc.p_sys = gc_sys->destroy_sys; - free(gc_sys); - } - else /* Intricate case: the picture is still locked and the gc - cannot be modified (w/o memory synchronization). */ - atomic_store(&gc_sys->zombie, true); + /* Restore the initial reference that was cloberred in + * picture_pool_NewExtended(). */ + atomic_fetch_add(&picture->gc.refcount, 1); + /* The picture might still locked and then the G.C. state cannot be + * modified (w/o memory synchronization). */ + atomic_store(&gc_sys->zombie, true); picture_Release(picture); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
