Browse Source

intreadwrite: Dont evaluate value for AV_W* multiple times.

Evaluating it multiple times, can have side effects and is possibly slow.
So its definitly a bad idea.

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.0
Michael Niedermayer 13 years ago
parent
commit
d83ff76ca0
1 changed files with 12 additions and 6 deletions
  1. +12
    -6
      libavutil/intreadwrite.h

+ 12
- 6
libavutil/intreadwrite.h View File

@@ -210,7 +210,8 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
((const uint8_t*)(x))[1]) ((const uint8_t*)(x))[1])
#endif #endif
#ifndef AV_WB16 #ifndef AV_WB16
# define AV_WB16(p, d) do { \
# define AV_WB16(p, darg) do { \
unsigned d = (darg); \
((uint8_t*)(p))[1] = (d); \ ((uint8_t*)(p))[1] = (d); \
((uint8_t*)(p))[0] = (d)>>8; \ ((uint8_t*)(p))[0] = (d)>>8; \
} while(0) } while(0)
@@ -222,7 +223,8 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
((const uint8_t*)(x))[0]) ((const uint8_t*)(x))[0])
#endif #endif
#ifndef AV_WL16 #ifndef AV_WL16
# define AV_WL16(p, d) do { \
# define AV_WL16(p, darg) do { \
unsigned d = (darg); \
((uint8_t*)(p))[0] = (d); \ ((uint8_t*)(p))[0] = (d); \
((uint8_t*)(p))[1] = (d)>>8; \ ((uint8_t*)(p))[1] = (d)>>8; \
} while(0) } while(0)
@@ -236,7 +238,8 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
((const uint8_t*)(x))[3]) ((const uint8_t*)(x))[3])
#endif #endif
#ifndef AV_WB32 #ifndef AV_WB32
# define AV_WB32(p, d) do { \
# define AV_WB32(p, darg) do { \
unsigned d = (darg); \
((uint8_t*)(p))[3] = (d); \ ((uint8_t*)(p))[3] = (d); \
((uint8_t*)(p))[2] = (d)>>8; \ ((uint8_t*)(p))[2] = (d)>>8; \
((uint8_t*)(p))[1] = (d)>>16; \ ((uint8_t*)(p))[1] = (d)>>16; \
@@ -252,7 +255,8 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
((const uint8_t*)(x))[0]) ((const uint8_t*)(x))[0])
#endif #endif
#ifndef AV_WL32 #ifndef AV_WL32
# define AV_WL32(p, d) do { \
# define AV_WL32(p, darg) do { \
unsigned d = (darg); \
((uint8_t*)(p))[0] = (d); \ ((uint8_t*)(p))[0] = (d); \
((uint8_t*)(p))[1] = (d)>>8; \ ((uint8_t*)(p))[1] = (d)>>8; \
((uint8_t*)(p))[2] = (d)>>16; \ ((uint8_t*)(p))[2] = (d)>>16; \
@@ -272,7 +276,8 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
(uint64_t)((const uint8_t*)(x))[7]) (uint64_t)((const uint8_t*)(x))[7])
#endif #endif
#ifndef AV_WB64 #ifndef AV_WB64
# define AV_WB64(p, d) do { \
# define AV_WB64(p, darg) do { \
uint64_t d = (darg); \
((uint8_t*)(p))[7] = (d); \ ((uint8_t*)(p))[7] = (d); \
((uint8_t*)(p))[6] = (d)>>8; \ ((uint8_t*)(p))[6] = (d)>>8; \
((uint8_t*)(p))[5] = (d)>>16; \ ((uint8_t*)(p))[5] = (d)>>16; \
@@ -296,7 +301,8 @@ union unaligned_16 { uint16_t l; } __attribute__((packed)) av_alias;
(uint64_t)((const uint8_t*)(x))[0]) (uint64_t)((const uint8_t*)(x))[0])
#endif #endif
#ifndef AV_WL64 #ifndef AV_WL64
# define AV_WL64(p, d) do { \
# define AV_WL64(p, darg) do { \
uint64_t d = (darg); \
((uint8_t*)(p))[0] = (d); \ ((uint8_t*)(p))[0] = (d); \
((uint8_t*)(p))[1] = (d)>>8; \ ((uint8_t*)(p))[1] = (d)>>8; \
((uint8_t*)(p))[2] = (d)>>16; \ ((uint8_t*)(p))[2] = (d)>>16; \


Loading…
Cancel
Save