summaryrefslogtreecommitdiffstats
path: root/external/mdds
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--external/mdds/Makefile7
-rw-r--r--external/mdds/Module_mdds.mk16
-rw-r--r--external/mdds/README4
-rw-r--r--external/mdds/UnpackedTarball_mdds.mk20
-rw-r--r--external/mdds/use-after-free.patch12
5 files changed, 59 insertions, 0 deletions
diff --git a/external/mdds/Makefile b/external/mdds/Makefile
new file mode 100644
index 000000000..e4968cf85
--- /dev/null
+++ b/external/mdds/Makefile
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+
+module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST))))
+
+include $(module_directory)/../../solenv/gbuild/partial_build.mk
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/mdds/Module_mdds.mk b/external/mdds/Module_mdds.mk
new file mode 100644
index 000000000..47745940b
--- /dev/null
+++ b/external/mdds/Module_mdds.mk
@@ -0,0 +1,16 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_Module_Module,mdds))
+
+$(eval $(call gb_Module_add_targets,mdds,\
+ UnpackedTarball_mdds \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/mdds/README b/external/mdds/README
new file mode 100644
index 000000000..140f07bac
--- /dev/null
+++ b/external/mdds/README
@@ -0,0 +1,4 @@
+Multi-dimensional data structure (mdds) library, available from [https://gitlab.com/mdds/mdds].
+
+mdds primarily provides data structures that are used by the calc
+core.
diff --git a/external/mdds/UnpackedTarball_mdds.mk b/external/mdds/UnpackedTarball_mdds.mk
new file mode 100644
index 000000000..271d20b0f
--- /dev/null
+++ b/external/mdds/UnpackedTarball_mdds.mk
@@ -0,0 +1,20 @@
+# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,mdds))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,mdds,$(MDDS_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,mdds,0))
+
+$(eval $(call gb_UnpackedTarball_add_patches,mdds,\
+ external/mdds/use-after-free.patch \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/mdds/use-after-free.patch b/external/mdds/use-after-free.patch
new file mode 100644
index 000000000..981c94582
--- /dev/null
+++ b/external/mdds/use-after-free.patch
@@ -0,0 +1,12 @@
+--- include/mdds/flat_segment_tree_def.inl
++++ include/mdds/flat_segment_tree_def.inl
+@@ -84,8 +84,8 @@
+ // Move on to the next destination node, and have the next node point
+ // back to the previous node.
+ node_ptr old_node = dest_node;
++ dest_node->next->prev = old_node;
+ dest_node = dest_node->next;
+- dest_node->prev = old_node;
+
+ if (src_node == r.m_right_leaf.get())
+ {