intreadwrite: Add intermediate variables in the byteswise AV_W*() macros
authorMartin Storsjö <martin@martin.st>
Mon, 1 Aug 2016 06:07:48 +0000 (09:07 +0300)
committerMartin Storsjö <martin@martin.st>
Tue, 2 Aug 2016 08:32:35 +0000 (11:32 +0300)
commit230b1c070baa3b6d4bd590426a365b843d60ff50
treeb4303ae76f1200b806bf248f0d417683db7be2fc
parent014773b66bdff4de24f384066d1a85d2a5bb6774
intreadwrite: Add intermediate variables in the byteswise AV_W*() macros

This avoids issues with expanding the argument multiple times,
and makes sure that it is of the right type for the following shifts.

Even if the caller of a macro could be expected not to pass parameters
that have side effects if expanded multiple times, these fallback
codepaths are rarely, if ever, tested, so it is expected that such
issues can arise.

Thefore, for safety, make sure the fallback codepaths only expand
the arguments once.

Signed-off-by: Martin Storsjö <martin@martin.st>
libavutil/intreadwrite.h