Message ID | 20220709035723.2035064-1-amirmazz@google.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] Remove unsafe bitwise OR on FFVulkanExtensions enum | expand |
Context | Check | Description |
---|---|---|
yinshiyou/commit_msg_loongarch64 | warning | The first line of the commit message must start with a context terminated by a colon and a space, for example "lavu/opt: " or "doc: ". |
andriy/commit_msg_armv7_RPi4 | warning | The first line of the commit message must start with a context terminated by a colon and a space, for example "lavu/opt: " or "doc: ". |
andriy/commit_msg_x86 | warning | The first line of the commit message must start with a context terminated by a colon and a space, for example "lavu/opt: " or "doc: ". |
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
andriy/make_armv7_RPi4 | success | Make finished |
andriy/make_fate_armv7_RPi4 | success | Make fate finished |
Ping On Fri, Jul 8, 2022 at 8:57 PM Amir Mazzarella <amirmazz@google.com> wrote: > FFVulkanExtensions enum does not have a value for 0 defined, and bitwise > OR on enums is not safe. The function returns uint64_t, so it makes more > sense and is safer to do arithmetic in terms of uint64_t > > Signed-off-by: Amir Mazzarella <amirmazz@google.com> > --- > libavutil/vulkan_loader.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h > index 3f1ee6aa46..0b2de4ab94 100644 > --- a/libavutil/vulkan_loader.h > +++ b/libavutil/vulkan_loader.h > @@ -50,12 +50,12 @@ static inline uint64_t ff_vk_extensions_to_mask(const > char * const *extensions, > #endif > }; > > - FFVulkanExtensions mask = 0x0; > + uint64_t mask = 0x0; > > for (int i = 0; i < nb_extensions; i++) { > for (int j = 0; j < FF_ARRAY_ELEMS(extension_map); j++) { > if (!strcmp(extensions[i], extension_map[j].name)) { > - mask |= extension_map[j].flag; > + mask |= (uint64_t) extension_map[j].flag; > continue; > } > } > -- > 2.37.0.rc0.161.g10f37bed90-goog > >
On 19 Jul 2022, at 20:31, Amir Mazzarella wrote: > Ping > > On Fri, Jul 8, 2022 at 8:57 PM Amir Mazzarella <amirmazz@google.com> wrote: > >> FFVulkanExtensions enum does not have a value for 0 defined, and bitwise >> OR on enums is not safe. The function returns uint64_t, so it makes more >> sense and is safer to do arithmetic in terms of uint64_t I am curious, can you elaborate why it would not be safe to do the bitwise OR on an enum? >> >> Signed-off-by: Amir Mazzarella <amirmazz@google.com> >> --- >> libavutil/vulkan_loader.h | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h >> index 3f1ee6aa46..0b2de4ab94 100644 >> --- a/libavutil/vulkan_loader.h >> +++ b/libavutil/vulkan_loader.h >> @@ -50,12 +50,12 @@ static inline uint64_t ff_vk_extensions_to_mask(const >> char * const *extensions, >> #endif >> }; >> >> - FFVulkanExtensions mask = 0x0; >> + uint64_t mask = 0x0; >> >> for (int i = 0; i < nb_extensions; i++) { >> for (int j = 0; j < FF_ARRAY_ELEMS(extension_map); j++) { >> if (!strcmp(extensions[i], extension_map[j].name)) { >> - mask |= extension_map[j].flag; >> + mask |= (uint64_t) extension_map[j].flag; >> continue; >> } >> } >> -- >> 2.37.0.rc0.161.g10f37bed90-goog >> >> > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff --git a/libavutil/vulkan_loader.h b/libavutil/vulkan_loader.h index 3f1ee6aa46..0b2de4ab94 100644 --- a/libavutil/vulkan_loader.h +++ b/libavutil/vulkan_loader.h @@ -50,12 +50,12 @@ static inline uint64_t ff_vk_extensions_to_mask(const char * const *extensions, #endif }; - FFVulkanExtensions mask = 0x0; + uint64_t mask = 0x0; for (int i = 0; i < nb_extensions; i++) { for (int j = 0; j < FF_ARRAY_ELEMS(extension_map); j++) { if (!strcmp(extensions[i], extension_map[j].name)) { - mask |= extension_map[j].flag; + mask |= (uint64_t) extension_map[j].flag; continue; } }
FFVulkanExtensions enum does not have a value for 0 defined, and bitwise OR on enums is not safe. The function returns uint64_t, so it makes more sense and is safer to do arithmetic in terms of uint64_t Signed-off-by: Amir Mazzarella <amirmazz@google.com> --- libavutil/vulkan_loader.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)