Update mdds to 1.6.0.

Change-Id: Iff350b47d5d237e0bb3ffcce0e80ce867c74191d
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88191
Tested-by: Kohei Yoshida <kohei@libreoffice.org>
Reviewed-by: Kohei Yoshida <kohei@libreoffice.org>
This commit is contained in:
Kohei Yoshida 2020-02-06 21:38:19 -05:00
parent 103b14d4fd
commit 618442dc3b
5 changed files with 133 additions and 17 deletions

View file

@ -170,8 +170,8 @@ export LXML_SHA256SUM := 940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a
export LXML_TARBALL := lxml-4.1.1.tgz
export MARIADB_CONNECTOR_C_SHA256SUM := fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60
export MARIADB_CONNECTOR_C_TARBALL := a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz
export MDDS_SHA256SUM := 144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d
export MDDS_TARBALL := mdds-1.5.0.tar.bz2
export MDDS_SHA256SUM := f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d
export MDDS_TARBALL := mdds-1.6.0.tar.bz2
export MDNSRESPONDER_SHA256SUM := e777b4d7dbf5eb1552cb80090ad1ede319067ab6e45e3990d68aabf6e8b3f5a0
export MDNSRESPONDER_TARBALL := mDNSResponder-878.200.35.tar.gz
export MSPUB_SHA256SUM := ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba

View file

@ -11,12 +11,11 @@ $(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_set_patchlevel,mdds,1))
# external/mdds/Wdeprecated-copy.patch upstream at <https://gitlab.com/mdds/mdds/merge_requests/21>
# "Remove redundantly user-declared private_data copy constructor":
$(eval $(call gb_UnpackedTarball_add_patches,mdds,\
external/mdds/Wdeprecated-copy.patch \
external/mdds/remove-warnings.diff \
external/mdds/delta-signed-int.diff \
))
# vim: set noet sw=4 ts=4:

View file

@ -1,11 +0,0 @@
--- include/mdds/multi_type_vector_itr.hpp
+++ include/mdds/multi_type_vector_itr.hpp
@@ -71,8 +71,6 @@
private_data() : block_index(0) {}
private_data(size_type _block_index) :
block_index(_block_index) {}
- private_data(const private_data& other) :
- block_index(other.block_index) {}
void swap(private_data& other)
{

44
external/mdds/delta-signed-int.diff vendored Normal file
View file

@ -0,0 +1,44 @@
diff --git a/include/mdds/multi_type_vector.hpp b/include/mdds/multi_type_vector.hpp
index d941ee2..71c34f3 100644
--- a/include/mdds/multi_type_vector.hpp
+++ b/include/mdds/multi_type_vector.hpp
@@ -1071,7 +1071,7 @@ public:
private:
- void adjust_block_positions(int64_t start_block_index, size_type delta);
+ void adjust_block_positions(int64_t start_block_index, int64_t delta);
/**
* Delete only the element block owned by an outer block.
diff --git a/include/mdds/multi_type_vector_def.inl b/include/mdds/multi_type_vector_def.inl
index d4fff49..7509e3e 100644
--- a/include/mdds/multi_type_vector_def.inl
+++ b/include/mdds/multi_type_vector_def.inl
@@ -503,7 +503,7 @@ multi_type_vector<_CellBlockFunc, _EventFunc>::set(const iterator& pos_hint, siz
}
template<typename _CellBlockFunc, typename _EventFunc>
-void multi_type_vector<_CellBlockFunc, _EventFunc>::adjust_block_positions(int64_t start_block_index, size_type delta)
+void multi_type_vector<_CellBlockFunc, _EventFunc>::adjust_block_positions(int64_t start_block_index, int64_t delta)
{
int64_t n = m_blocks.size();
@@ -2927,7 +2927,7 @@ void multi_type_vector<_CellBlockFunc, _EventFunc>::erase_impl(size_type start_r
// Now, erase all blocks in between.
delete_element_blocks(it_erase_begin, it_erase_end);
auto it_adjust_block = m_blocks.erase(it_erase_begin, it_erase_end);
- size_type delta = end_row - start_row + 1;
+ int64_t delta = end_row - start_row + 1;
m_cur_size -= delta;
if (m_blocks.empty())
@@ -2945,7 +2945,7 @@ void multi_type_vector<_CellBlockFunc, _EventFunc>::erase_in_single_block(
{
// Range falls within the same block.
block* blk = &m_blocks[block_pos];
- size_type size_to_erase = end_pos - start_pos + 1;
+ int64_t size_to_erase = end_pos - start_pos + 1;
if (blk->mp_data)
{
// Erase data in the data block.

84
external/mdds/remove-warnings.diff vendored Normal file
View file

@ -0,0 +1,84 @@
diff --git a/configure.ac b/configure.ac
index ef22726..00ab937 100644
--- a/configure.ac
+++ b/configure.ac
@@ -70,7 +70,7 @@ AC_ARG_ENABLE(openmp,
)
AS_IF([test x"$enable_openmp" == "xyes"], [
- CXXFLAGS="$CXXFLAGS -fopenmp"
+ CXXFLAGS="$CXXFLAGS -fopenmp -DMDDS_USE_OPENMP=1"
LDFLAGS="$LDFLAGS -fopenmp"
])
diff --git a/include/mdds/global.hpp b/include/mdds/global.hpp
index f92f0a5..11f0325 100644
--- a/include/mdds/global.hpp
+++ b/include/mdds/global.hpp
@@ -65,6 +65,10 @@
#define MDDS_LOOP_UNROLLING 1
#endif
+#ifndef MDDS_USE_OPENMP
+#define MDDS_USE_OPENMP 0
+#endif
+
namespace mdds {
class general_error : public ::std::exception
diff --git a/include/mdds/multi_type_vector.hpp b/include/mdds/multi_type_vector.hpp
index 1c50a42..d941ee2 100644
--- a/include/mdds/multi_type_vector.hpp
+++ b/include/mdds/multi_type_vector.hpp
@@ -1126,8 +1126,7 @@ private:
void append_cell_to_block(size_type block_index, const _T& cell);
template<typename _T>
- iterator set_cell_to_empty_block(
- size_type start_row, size_type block_index, size_type pos_in_block, const _T& cell);
+ iterator set_cell_to_empty_block(size_type block_index, size_type pos_in_block, const _T& cell);
template<typename _T>
iterator set_cell_to_block_of_size_one(
diff --git a/include/mdds/multi_type_vector_def.inl b/include/mdds/multi_type_vector_def.inl
index a4cfe6d..d4fff49 100644
--- a/include/mdds/multi_type_vector_def.inl
+++ b/include/mdds/multi_type_vector_def.inl
@@ -516,7 +516,9 @@ void multi_type_vector<_CellBlockFunc, _EventFunc>::adjust_block_positions(int64
int64_t rem = len % 8;
len -= rem;
len += start_block_index;
+#if MDDS_USE_OPENMP
#pragma omp parallel for
+#endif
for (int64_t i = start_block_index; i < len; i += 8)
{
m_blocks[i].m_position += delta;
@@ -533,7 +535,9 @@ void multi_type_vector<_CellBlockFunc, _EventFunc>::adjust_block_positions(int64
for (int64_t i = len; i < rem; ++i)
m_blocks[i].m_position += delta;
#else
+#if MDDS_USE_OPENMP
#pragma omp parallel for
+#endif
for (int64_t i = start_block_index; i < n; ++i)
m_blocks[i].m_position += delta;
#endif
@@ -583,7 +587,7 @@ multi_type_vector<_CellBlockFunc, _EventFunc>::set_impl(size_type pos, size_type
if (!blk->mp_data)
{
// This is an empty block.
- return set_cell_to_empty_block(start_row, block_index, pos_in_block, value);
+ return set_cell_to_empty_block(block_index, pos_in_block, value);
}
assert(blk->mp_data);
@@ -1027,7 +1031,7 @@ template<typename _CellBlockFunc, typename _EventFunc>
template<typename _T>
typename multi_type_vector<_CellBlockFunc, _EventFunc>::iterator
multi_type_vector<_CellBlockFunc, _EventFunc>::set_cell_to_empty_block(
- size_type start_row, size_type block_index, size_type pos_in_block, const _T& cell)
+ size_type block_index, size_type pos_in_block, const _T& cell)
{
block* blk = &m_blocks[block_index];
assert(!blk->mp_data); // In this call, the current block is an empty block.