sample = *src;
if (! *dst) {
*sum = -sample;
- *dst = *src;
+ *dst = -sample;
} else {
*sum = sample = *sum - sample;
if (sample > 0x7fff)
sample = *src >> 8;
if (! *dst) {
*sum = -sample;
- *dst = *src;
+ *dst = -*src;
} else {
*sum = sample = *sum - sample;
if (sample > 0x7fffff)
sample = (signed short) bswap_16(*src);
if (! *dst) {
*sum = -sample;
- *dst = *src;
+ *dst = (signed short) bswap_16((signed short) -sample);
} else {
*sum = sample = *sum - sample;
if (sample > 0x7fff)
sample = bswap_32(*src) >> 8;
if (! *dst) {
*sum = -sample;
- *dst = *src;
+ *dst = bswap_32(-sample);
} else {
*sum = sample = *sum - sample;
if (sample > 0x7fffff)
for (;;) {
sample = src[0] | (src[1] << 8) | (((signed char *)src)[2] << 16);
if (!(dst[0] | dst[1] | dst[2])) {
- *sum = -sample;
+ sample = -sample;
+ *sum = sample;
} else {
*sum = sample = *sum - sample;
if (sample > 0x7fffff)
for (;;) {
register int sample = *src - 0x80;
if (*dst == 0x80) {
- *sum = -sample;
+ sample = -sample;
+ *sum = sample;
} else {
*sum = sample = *sum - sample;
if (sample > 0x7f)