Index: third_party/libwebp/utils/bit_writer.c |
diff --git a/third_party/libwebp/utils/bit_writer.c b/third_party/libwebp/utils/bit_writer.c |
index 3827a13ad1efe7be95808c7b5510a2838aafa30b..29810a17492fa4a53a0809ae5959a207a6246747 100644 |
--- a/third_party/libwebp/utils/bit_writer.c |
+++ b/third_party/libwebp/utils/bit_writer.c |
@@ -17,10 +17,6 @@ |
#include <stdlib.h> |
#include "./bit_writer.h" |
-#if defined(__cplusplus) || defined(c_plusplus) |
-extern "C" { |
-#endif |
- |
//------------------------------------------------------------------------------ |
// VP8BitWriter |
@@ -43,7 +39,10 @@ static int BitWriterResize(VP8BitWriter* const bw, size_t extra_size) { |
bw->error_ = 1; |
return 0; |
} |
- memcpy(new_buf, bw->buf_, bw->pos_); |
+ if (bw->pos_ > 0) { |
+ assert(bw->buf_ != NULL); |
+ memcpy(new_buf, bw->buf_, bw->pos_); |
+ } |
free(bw->buf_); |
bw->buf_ = new_buf; |
bw->max_pos_ = new_size; |
@@ -253,7 +252,7 @@ void VP8LWriteBits(VP8LBitWriter* const bw, int n_bits, uint32_t bits) { |
uint8_t* p = &bw->buf_[bw->bit_pos_ >> 3]; |
const int bits_reserved_in_first_byte = bw->bit_pos_ & 7; |
const int bits_left_to_write = n_bits - 8 + bits_reserved_in_first_byte; |
- // implicit & 0xff is assumed for uint8_t arithmetics |
+ // implicit & 0xff is assumed for uint8_t arithmetic |
*p++ |= bits << bits_reserved_in_first_byte; |
bits >>= 8 - bits_reserved_in_first_byte; |
if (bits_left_to_write >= 1) { |
@@ -281,6 +280,3 @@ void VP8LWriteBits(VP8LBitWriter* const bw, int n_bits, uint32_t bits) { |
//------------------------------------------------------------------------------ |
-#if defined(__cplusplus) || defined(c_plusplus) |
-} // extern "C" |
-#endif |