[vlc-devel] [PATCH 1/2] chroma: copy: do not use an empty structure if SSE2 is not supported
Steve Lhomme
robux4 at ycbcr.xyz
Fri May 3 08:04:45 CEST 2019
On 5/2/2019 4:56 PM, Rémi Denis-Courmont wrote:
> Le torstaina 2. toukokuuta 2019, 12.36.29 EEST Steve Lhomme a écrit :
>> Structures with no field should not be used, it's Undefined Behavior:
>> https://stackoverflow.com/questions/3849334/sizeof-empty-structure-is-0-in-c
>> -and-1-in-c-why ---
>> modules/video_chroma/copy.h | 2 ++
>> 1 file changed, 2 insertions(+)
>>
>> diff --git a/modules/video_chroma/copy.h b/modules/video_chroma/copy.h
>> index 6c463226f1..b06dc680cc 100644
>> --- a/modules/video_chroma/copy.h
>> +++ b/modules/video_chroma/copy.h
>> @@ -29,6 +29,8 @@ typedef struct {
>> # ifdef CAN_COMPILE_SSE2
>> uint8_t *buffer;
>> size_t size;
>> +# else
>> + char dummy;
>> # endif
>> } copy_cache_t;
> Better to move the whole structure at all under the ifdef, IMO.
That means all the copy_cache_t API calls also have to put around that
ifdef. And meaning if we support it on more architecture (ARM for
example) all the code has to be updated accordingly. IMO this simple fix
is safer for now.
More information about the vlc-devel
mailing list