mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-20 13:57:00 +00:00
Use alias-safe types in AV_[RW] macros
Originally committed as revision 21878 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
d10458c9e2
commit
0c76e635f5
@ -177,12 +177,12 @@ typedef union {
|
||||
|
||||
#if HAVE_ATTRIBUTE_PACKED
|
||||
|
||||
struct unaligned_64 { uint64_t l; } __attribute__((packed));
|
||||
struct unaligned_32 { uint32_t l; } __attribute__((packed));
|
||||
struct unaligned_16 { uint16_t l; } __attribute__((packed));
|
||||
union unaligned_64 { uint64_t l; } __attribute__((packed)) av_alias;
|
||||
union unaligned_32 { uint32_t l; } __attribute__((packed)) av_alias;
|
||||
union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
|
||||
|
||||
# define AV_RN(s, p) (((const struct unaligned_##s *) (p))->l)
|
||||
# define AV_WN(s, p, v) ((((struct unaligned_##s *) (p))->l) = (v))
|
||||
# define AV_RN(s, p) (((const union unaligned_##s *) (p))->l)
|
||||
# define AV_WN(s, p, v) ((((union unaligned_##s *) (p))->l) = (v))
|
||||
|
||||
#elif defined(__DECC)
|
||||
|
||||
@ -191,8 +191,8 @@ struct unaligned_16 { uint16_t l; } __attribute__((packed));
|
||||
|
||||
#elif HAVE_FAST_UNALIGNED
|
||||
|
||||
# define AV_RN(s, p) (*((const uint##s##_t*)(p)))
|
||||
# define AV_WN(s, p, v) (*((uint##s##_t*)(p)) = (v))
|
||||
# define AV_RN(s, p) (((const av_alias##s*)(p))->u##s)
|
||||
# define AV_WN(s, p, v) (((uint##s##_t*)(p))->u##s = (v))
|
||||
|
||||
#else
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user