| diff --git a/third_party/agg23/agg_path_storage.cpp b/third_party/agg23/agg_path_storage.cpp |
| index 2cd0caed1..1491e9e33 100644 |
| --- a/third_party/agg23/agg_path_storage.cpp |
| +++ b/third_party/agg23/agg_path_storage.cpp |
| @@ -43,14 +43,20 @@ path_storage::~path_storage() |
| FX_Free(m_coord_blocks); |
| } |
| } |
| -path_storage::path_storage() : |
| - m_total_vertices(0), |
| - m_total_blocks(0), |
| - m_max_blocks(0), |
| - m_coord_blocks(0), |
| - m_cmd_blocks(0), |
| - m_iterator(0) |
| -{ |
| +path_storage::path_storage() = default; |
| +path_storage::path_storage(path_storage&& other) { |
| + m_total_vertices = other.m_total_vertices; |
| + m_total_blocks = other.m_total_blocks; |
| + m_max_blocks = other.m_max_blocks; |
| + m_coord_blocks = other.m_coord_blocks; |
| + m_cmd_blocks = other.m_cmd_blocks; |
| + m_iterator = other.m_iterator; |
| + other.m_total_vertices = 0; |
| + other.m_total_blocks = 0; |
| + other.m_max_blocks = 0; |
| + other.m_coord_blocks = nullptr; |
| + other.m_cmd_blocks = nullptr; |
| + other.m_iterator = 0; |
| } |
| void path_storage::allocate_block(unsigned nb) |
| { |
| diff --git a/third_party/agg23/agg_path_storage.h b/third_party/agg23/agg_path_storage.h |
| index 55d6df001..8f10ff36d 100644 |
| --- a/third_party/agg23/agg_path_storage.h |
| +++ b/third_party/agg23/agg_path_storage.h |
| @@ -50,6 +50,10 @@ public: |
| }; |
| ~path_storage(); |
| path_storage(); |
| + path_storage(path_storage&& other); |
| + path_storage& operator=(path_storage&&) = delete; |
| + path_storage(const path_storage&) = delete; |
| + path_storage& operator=(const path_storage&) = delete; |
| unsigned last_vertex(float* x, float* y) const; |
| unsigned prev_vertex(float* x, float* y) const; |
| void move_to(float x, float y); |
| @@ -116,12 +120,12 @@ private: |
| void allocate_block(unsigned nb); |
| unsigned char* storage_ptrs(float** xy_ptr); |
| private: |
| - unsigned m_total_vertices; |
| - unsigned m_total_blocks; |
| - unsigned m_max_blocks; |
| - float** m_coord_blocks; |
| - unsigned char** m_cmd_blocks; |
| - unsigned m_iterator; |
| + unsigned m_total_vertices = 0; |
| + unsigned m_total_blocks = 0; |
| + unsigned m_max_blocks = 0; |
| + float** m_coord_blocks = nullptr; |
| + unsigned char** m_cmd_blocks = nullptr; |
| + unsigned m_iterator = 0; |
| }; |
| inline unsigned path_storage::vertex(float* x, float* y) |
| { |