parent
98381de086
commit
5198193bc3
@ -0,0 +1,15 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent d5fb760990e45ae0db4f4b7609d8affb85101a39
|
||||||
|
add missing link
|
||||||
|
|
||||||
|
diff -r d5fb760990e4 -r c08b02a02f23 include/mdds/flat_segment_tree_def.inl
|
||||||
|
--- a/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:52:10 2011 +0100
|
||||||
|
+++ b/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:53:14 2011 +0100
|
||||||
|
@@ -438,6 +438,7 @@
|
||||||
|
m_left_leaf->value_leaf.value = m_init_val;
|
||||||
|
new_node->left = m_left_leaf;
|
||||||
|
new_node->right = m_left_leaf->right;
|
||||||
|
+ m_left_leaf->right->left = new_node;
|
||||||
|
m_left_leaf->right = new_node;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
|||||||
|
# HG changeset patch
|
||||||
|
# Parent ff6ad274f8ecb1715d366ddb53ecafd422252660
|
||||||
|
do not insert new node if the whole range was shifted
|
||||||
|
|
||||||
|
diff -r ff6ad274f8ec include/mdds/flat_segment_tree_def.inl
|
||||||
|
--- a/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:54:16 2011 +0100
|
||||||
|
+++ b/inc/mdds/flat_segment_tree.hpp Thu Mar 24 14:55:26 2011 +0100
|
||||||
|
@@ -430,16 +430,25 @@
|
||||||
|
|
||||||
|
if (m_left_leaf->value_leaf.value != m_init_val)
|
||||||
|
{
|
||||||
|
- // The leftmost leaf node has a non-initial value. We need to
|
||||||
|
- // insert a new node to carry that value after the shift.
|
||||||
|
- node_ptr new_node(new node(true));
|
||||||
|
- new_node->value_leaf.key = pos + size;
|
||||||
|
- new_node->value_leaf.value = m_left_leaf->value_leaf.value;
|
||||||
|
- m_left_leaf->value_leaf.value = m_init_val;
|
||||||
|
- new_node->left = m_left_leaf;
|
||||||
|
- new_node->right = m_left_leaf->right;
|
||||||
|
- m_left_leaf->right->left = new_node;
|
||||||
|
- m_left_leaf->right = new_node;
|
||||||
|
+ if (size < m_right_leaf->value_leaf.key - m_left_leaf->value_leaf.key)
|
||||||
|
+ {
|
||||||
|
+ // The leftmost leaf node has a non-initial value. We need to
|
||||||
|
+ // insert a new node to carry that value after the shift.
|
||||||
|
+ node_ptr new_node(new node(true));
|
||||||
|
+ new_node->value_leaf.key = pos + size;
|
||||||
|
+ new_node->value_leaf.value = m_left_leaf->value_leaf.value;
|
||||||
|
+ m_left_leaf->value_leaf.value = m_init_val;
|
||||||
|
+ new_node->left = m_left_leaf;
|
||||||
|
+ new_node->right = m_left_leaf->right;
|
||||||
|
+ m_left_leaf->right->left = new_node;
|
||||||
|
+ m_left_leaf->right = new_node;
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ {
|
||||||
|
+ // We shifted out the whole range, so there would be no new
|
||||||
|
+ // node inserted. Just set default value.
|
||||||
|
+ m_left_leaf->value_leaf.value = m_init_val;
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
|
||||||
|
m_valid_tree = false;
|
@ -0,0 +1,13 @@
|
|||||||
|
diff -up libreoffice-3.3.2.2/mdds/makefile.mk.dt libreoffice-3.3.2.2/mdds/makefile.mk
|
||||||
|
--- libreoffice-3.3.2.2/mdds/makefile.mk.dt 2011-03-24 16:59:53.237493218 +0100
|
||||||
|
+++ libreoffice-3.3.2.2/mdds/makefile.mk 2011-03-24 17:26:51.098221650 +0100
|
||||||
|
@@ -38,7 +38,8 @@ TARGET=mdds
|
||||||
|
|
||||||
|
TARFILE_NAME=mdds_0.3.0
|
||||||
|
TARFILE_MD5=cf8a6967f7de535ae257fa411c98eb88
|
||||||
|
-PATCH_FILES=
|
||||||
|
+PATCH_FILES= mdds.add-missing-link.patch \
|
||||||
|
+ mdds.do-not-insert-new-node.patch
|
||||||
|
|
||||||
|
CONFIGURE_DIR=
|
||||||
|
CONFIGURE_ACTION=
|
Loading…
Reference in new issue