diff options
author | weili <weili@chromium.org> | 2016-06-14 17:21:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-14 17:21:14 -0700 |
commit | f4bb580add3824196dc49cd7de2f7d051019ede8 (patch) | |
tree | 15c1db6fb7000330d48c105c66acf1d468ba56bd /core/fxcodec/lgif | |
parent | ee2abec93f22bd10522181dc0362f24d389fc66b (diff) | |
download | pdfium-f4bb580add3824196dc49cd7de2f7d051019ede8.tar.xz |
Make code compile with clang_use_chrome_plugin (part II)
This change contains files in core directory which were not covered
in part I. This is part of the efforts to make PDFium code compilable
by Clang chromium style plugins.
The changes are mainly the following:
-- move inline constructor/destructor of complex class/struct out-of-line;
-- add constructor/destructor of complex class/struct if not
explicitly defined;
-- add explicit out-of-line copy constructor when needed;
-- move inline virtual functions out-of-line;
-- Properly mark virtual functions with 'override';
-- some minor cleanups;
BUG=pdfium:469
Review-Url: https://codereview.chromium.org/2060913003
Diffstat (limited to 'core/fxcodec/lgif')
-rw-r--r-- | core/fxcodec/lgif/fx_gif.cpp | 19 | ||||
-rw-r--r-- | core/fxcodec/lgif/fx_gif.h | 15 |
2 files changed, 31 insertions, 3 deletions
diff --git a/core/fxcodec/lgif/fx_gif.cpp b/core/fxcodec/lgif/fx_gif.cpp index b9ea090853..d6db28b427 100644 --- a/core/fxcodec/lgif/fx_gif.cpp +++ b/core/fxcodec/lgif/fx_gif.cpp @@ -12,9 +12,28 @@ void CGifLZWDecoder::Input(uint8_t* src_buf, uint32_t src_size) { next_in = src_buf; avail_in = src_size; } + uint32_t CGifLZWDecoder::GetAvailInput() { return avail_in; } + +CGifLZWDecoder::CGifLZWDecoder(FX_CHAR* error_ptr) + : code_size(0), + code_size_cur(0), + code_clear(0), + code_end(0), + code_next(0), + code_first(0), + stack_size(0), + code_old(0), + next_in(nullptr), + avail_in(0), + bits_left(0), + code_store(0), + err_msg_ptr(error_ptr) {} + +CGifLZWDecoder::~CGifLZWDecoder() {} + void CGifLZWDecoder::InitTable(uint8_t code_len) { code_size = code_len; code_clear = 1 << code_size; diff --git a/core/fxcodec/lgif/fx_gif.h b/core/fxcodec/lgif/fx_gif.h index 7d325fb3fe..b7157df429 100644 --- a/core/fxcodec/lgif/fx_gif.h +++ b/core/fxcodec/lgif/fx_gif.h @@ -107,22 +107,25 @@ typedef struct tagGifImage { uint8_t* image_row_buf; int32_t image_row_num; } GifImage; + typedef struct tagGifPlainText { GifGCE* gce_ptr; GifPTE* pte_ptr; CFX_ByteString* string_ptr; } GifPlainText; + class CGifLZWDecoder { public: struct tag_Table { uint16_t prefix; uint8_t suffix; }; - CGifLZWDecoder(FX_CHAR* error_ptr = nullptr) { err_msg_ptr = error_ptr; } - void InitTable(uint8_t code_len); - int32_t Decode(uint8_t* des_buf, uint32_t& des_size); + explicit CGifLZWDecoder(FX_CHAR* error_ptr); + ~CGifLZWDecoder(); + void InitTable(uint8_t code_len); + int32_t Decode(uint8_t* des_buf, uint32_t& des_size); void Input(uint8_t* src_buf, uint32_t src_size); uint32_t GetAvailInput(); @@ -130,6 +133,7 @@ class CGifLZWDecoder { void ClearTable(); void AddCode(uint16_t prefix_code, uint8_t append_char); void DecodeString(uint16_t code); + uint8_t code_size; uint8_t code_size_cur; uint16_t code_clear; @@ -149,14 +153,17 @@ class CGifLZWDecoder { FX_CHAR* err_msg_ptr; }; + class CGifLZWEncoder { public: struct tag_Table { uint16_t prefix; uint8_t suffix; }; + CGifLZWEncoder(); ~CGifLZWEncoder(); + void Start(uint8_t code_len, const uint8_t* src_buf, uint8_t*& dst_buf, @@ -178,6 +185,7 @@ class CGifLZWEncoder { uint32_t& dst_len, uint32_t& offset); void WriteBlock(uint8_t*& dst_buf, uint32_t& dst_len, uint32_t& offset); + jmp_buf jmp; uint32_t src_offset; uint8_t src_bit_offset; @@ -194,6 +202,7 @@ class CGifLZWEncoder { tag_Table code_table[GIF_MAX_LZW_CODE]; uint16_t table_cur; }; + typedef struct tag_gif_decompress_struct gif_decompress_struct; typedef gif_decompress_struct* gif_decompress_struct_p; typedef gif_decompress_struct_p* gif_decompress_struct_pp; |