Diego Biurrun <di...@biurrun.de> writes: > --- > libavutil/lzo.c | 28 ++++++++-------------------- > 1 files changed, 8 insertions(+), 20 deletions(-) > > diff --git a/libavutil/lzo.c b/libavutil/lzo.c > index 0d1ec55..a7fddc5 100644 > --- a/libavutil/lzo.c > +++ b/libavutil/lzo.c > @@ -23,6 +23,7 @@ > > #include "avutil.h" > #include "common.h" > +#include "intreadwrite.h" > #include "lzo.h" > > /// Define if we may write up to 12 bytes beyond the output buffer. > @@ -71,19 +72,6 @@ static inline int get_len(LZOContext *c, int x, int mask) > return cnt; > } > > -//#define UNALIGNED_LOADSTORE > -#define BUILTIN_MEMCPY > -#ifdef UNALIGNED_LOADSTORE > -#define COPY2(d, s) *(uint16_t *)(d) = *(uint16_t *)(s); > -#define COPY4(d, s) *(uint32_t *)(d) = *(uint32_t *)(s); > -#elif defined(BUILTIN_MEMCPY) > -#define COPY2(d, s) memcpy(d, s, 2); > -#define COPY4(d, s) memcpy(d, s, 4); > -#else > -#define COPY2(d, s) (d)[0] = (s)[0]; (d)[1] = (s)[1]; > -#define COPY4(d, s) (d)[0] = (s)[0]; (d)[1] = (s)[1]; (d)[2] = (s)[2]; > (d)[3] = (s)[3]; > -#endif > - > /** > * @brief Copies bytes from input to output buffer with checking. > * @param cnt number of bytes to copy, must be >= 0 > @@ -101,7 +89,7 @@ static inline void copy(LZOContext *c, int cnt) > c->error |= AV_LZO_OUTPUT_FULL; > } > #if defined(INBUF_PADDED) && defined(OUTBUF_PADDED) > - COPY4(dst, src); > + AV_COPY32(dst, src); > src += 4; > dst += 4; > cnt -= 4; > @@ -145,16 +133,16 @@ static inline void memcpy_backptr(uint8_t *dst, int > back, int cnt) > memset(dst, *src, cnt); > } else { > #ifdef OUTBUF_PADDED > - COPY2(dst, src); > - COPY2(dst + 2, src + 2); > + AV_COPY16(dst, src); > + AV_COPY16(dst + 2, src + 2);
You can't use AV_COPY* here because alignment isn't guaranteed. -- Måns Rullgård m...@mansr.com _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel