blob: c0fbee54a88302ab5b12e2ccbeee49643b74ef03 [file] [log] [blame]
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)
{