Fix assignment operator return values in agg.

PiperOrigin-RevId: 254824941
Change-Id: Ifb1d03692cfb0ffa46f7c67526bef4207da7d45a
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/56890
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/third_party/agg23/0005-assignment-return-values.patch b/third_party/agg23/0005-assignment-return-values.patch
new file mode 100644
index 0000000..4a0006f
--- /dev/null
+++ b/third_party/agg23/0005-assignment-return-values.patch
@@ -0,0 +1,40 @@
+diff --git a/third_party/agg23/agg_array.h b/third_party/agg23/agg_array.h
+index d521b04..8dcb0af 100644
+--- a/third_party/agg23/agg_array.h
++++ b/third_party/agg23/agg_array.h
+@@ -32,7 +32,7 @@
+     pod_array() : m_size(0), m_capacity(0), m_array(0) {}
+     pod_array(unsigned cap, unsigned extra_tail = 0);
+     pod_array(const pod_array<T>&);
+-    const pod_array<T>& operator = (const pod_array<T>&);
++    pod_array<T>& operator = (const pod_array<T>&);
+     void capacity(unsigned cap, unsigned extra_tail = 0);
+     unsigned capacity() const
+     {
+@@ -144,7 +144,7 @@
+ {
+   memcpy(m_array, v.m_array, sizeof(T) * v.m_size);
+ }
+-template<class T> const pod_array<T>&
++template<class T> pod_array<T>&
+ pod_array<T>::operator = (const pod_array<T>&v)
+ {
+     allocate(v.m_size);
+@@ -166,7 +166,7 @@
+     pod_deque();
+     pod_deque(unsigned block_ptr_inc);
+     pod_deque(const pod_deque<T, S>& v);
+-    const pod_deque<T, S>& operator = (const pod_deque<T, S>& v);
++    pod_deque<T, S>& operator = (const pod_deque<T, S>& v);
+     void remove_all()
+     {
+         m_size = 0;
+@@ -323,7 +323,7 @@
+     }
+ }
+ template<class T, unsigned S>
+-const pod_deque<T, S>& pod_deque<T, S>::operator = (const pod_deque<T, S>& v)
++pod_deque<T, S>& pod_deque<T, S>::operator = (const pod_deque<T, S>& v)
+ {
+     unsigned i;
+     for(i = m_num_blocks; i < v.m_num_blocks; ++i) {