[vlc-devel] [PATCH 1/9] playlist: assign unique id to playlist items

Rémi Denis-Courmont remi at remlab.net
Mon Mar 4 16:06:22 CET 2019


Le maanantaina 4. maaliskuuta 2019, 16.28.27 EET Romain Vimont a écrit :
> On Mon, Mar 04, 2019 at 04:07:40PM +0200, Rémi Denis-Courmont wrote:
> > We also had assertions before. That did not prevent horrors along the line
> > of lock/get/unlock ... lock/use/unlock.
> > 
> > In other words an assertion is not enough. We'd need a way to invalidate
> > the item after unlocking.
> The id is just a uint64_t, and it typically survives lock/unlock blocks.
> 
> The typical scenario is to retrieve the id when we have the real item
> (e.g. to send the playlist content to the HTTP client):
> 
>     lock()
>     item = Get(index)
>     id = GetId(item)
>     // ...
>     unlock()

The intended scenario is fine and all. That won't prevent the exact same misuse 
as with the legacy playlist:

	lock()
	item = Get(index)
	unlock()
	...
	lock()
	do_something(item)
	unlock()

The assertion is helpless to catch that.

-- 
雷米‧德尼-库尔蒙
http://www.remlab.net/





More information about the vlc-devel mailing list