[mdds] 17/62: Imported Upstream version 0.5.4
This is an automated email from the git hooks/post-receive script.
rene pushed a commit to branch master
in repository mdds.
commit 63e14856f672e2d7cf96629c151216f1db525908
Author: Rene Engelhard <rene@debian.org>
Date: Thu Apr 21 14:50:47 2016 +0200
Imported Upstream version 0.5.4
---
NEWS | 85 +++++++++++++++++++++++-----------------
autogen.sh | 6 +++
configure | 32 +++++++--------
configure.ac | 52 ++++++++++++++++++++++++
include/mdds/point_quad_tree.hpp | 16 +++++++-
include/mdds/segment_tree.hpp | 23 +++++++----
6 files changed, 154 insertions(+), 60 deletions(-)
diff --git a/NEWS b/NEWS
index 7f9a224..57dd642 100644
--- a/NEWS
+++ b/NEWS
@@ -1,34 +1,49 @@
+mdds 0.5.4
+
+* segment_tree
+
+ * fixed build breakage, to allow it to be buildable when UNIT_TEST
+ is not defined.
+
+ * fixed a crasher with MSVC when comparing iterators of empty
+ search_result instances.
+
+* point_quad_tree
+
+ * fixed a bug where de-referencing copied search_result iterators
+ would return an uninitialized node data.
+
mdds 0.5.3
* mixed_type_matrix
- * re-implemented the filled storage for better performance, with two
- separate implementations for zero and emtpy matrix types. The
- newer implementation should improve object creation time
+ * re-implemented the filled storage for better performance, with two
+ separate implementations for zero and emtpy matrix types. The
+ newer implementation should improve object creation time
considerably.
mdds 0.5.2
* flat_segment_tree
- * fixed a crash on assignment by properly implementing assignment
- operator().
+ * fixed a crash on assignment by properly implementing assignment
+ operator().
* fixed several bugs in shift_right():
- * shifting of all existing nodes was not handled properly.
+ * shifting of all existing nodes was not handled properly.
* leaf nodes were not properly linked under certain conditions.
- * shifting with skip node option was not properly skipping the
- node at insertion position when the insertion position was at
- the leftmost node.
+ * shifting with skip node option was not properly skipping the
+ node at insertion position when the insertion position was at
+ the leftmost node.
- * implemented min_key(), max_key(), default_value(), clear() and
+ * implemented min_key(), max_key(), default_value(), clear() and
swap().
- * fixed a bug in operator==() where two different containers were
- incorrectly evaluated to be equal.
+ * fixed a bug in operator==() where two different containers were
+ incorrectly evaluated to be equal.
* added quickcheck test code.
@@ -38,29 +53,29 @@ mdds 0.5.1
mdds 0.5.0
- * flat_segment_tree's search methods now return a std::pair of
- const_iterator and bool, instead of just returning bool.
+ * flat_segment_tree's search methods now return a std::pair of
+ const_iterator and bool, instead of just returning bool.
- * fixed a weird enum value mis-handling with mixed_type_matrix when
+ * fixed a weird enum value mis-handling with mixed_type_matrix when
compiled with MSVC++.
- * added new insert() method to flat_segment_tree that takes a
- positional hint in order to speed up insertion speed. Also, all
- three insert() methods now return the start position of the
- segment that an inserted segment belongs to.
+ * added new insert() method to flat_segment_tree that takes a
+ positional hint in order to speed up insertion speed. Also, all
+ three insert() methods now return the start position of the
+ segment that an inserted segment belongs to.
- * slight performance improvement on the insert methods of
- flat_segment_tree.
+ * slight performance improvement on the insert methods of
+ flat_segment_tree.
- * slight performance improvement on the iterators of
+ * slight performance improvement on the iterators of
flat_segment_tree.
- * re-organized the structure of flat_segment_tree to split it into
- multiple headers.
+ * re-organized the structure of flat_segment_tree to split it into
+ multiple headers.
* properly support prefix, docdir, includedir configure options.
-
- * support DESTDIR environment variable for make install.
+
+ * support DESTDIR environment variable for make install.
mdds 0.4.0
@@ -68,7 +83,7 @@ mdds 0.4.0
mdds 0.3.1
- * added support for boost::unordered_map (boost) and std::hash_map
+ * added support for boost::unordered_map (boost) and std::hash_map
(stlport) in addition to C++0x's std::unordered_map.
mdds 0.3.0
@@ -79,11 +94,11 @@ mdds 0.2.1
* added example files on how to use these data structures.
- * fixed a bug in segment_tree::search_result object, to make it work
- with empty result set.
+ * fixed a bug in segment_tree::search_result object, to make it work
+ with empty result set.
- * fixed segment_tree to make it really usable outside of unit test
- code.
+ * fixed segment_tree to make it really usable outside of unit test
+ code.
mdds 0.2.0
@@ -91,8 +106,8 @@ mdds 0.2.0
* lots of code cleanups.
- * support for search result iterator in segment_tree and
- rectangle_set, for better search performance.
+ * support for search result iterator in segment_tree and
+ rectangle_set, for better search performance.
* implemented rectnagle_set.
@@ -102,5 +117,5 @@ mdds 0.1.2
* implemented segment_tree.
- * node_base class is now without virtual methods to avoid vtable
- generation.
+ * node_base class is now without virtual methods to avoid vtable
+ generation.
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..6ed99bd
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# Create configure script from configure.ac.
+autoconf || exit 1
+
+./configure $@
\ No newline at end of file
diff --git a/configure b/configure
index 680db6a..090353f 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for mdds 0.5.3.
+# Generated by GNU Autoconf 2.68 for mdds 0.5.4.
#
# Report bugs to <kohei.yoshida@gmail.com>.
#
@@ -559,8 +559,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='mdds'
PACKAGE_TARNAME='mdds'
-PACKAGE_VERSION='0.5.3'
-PACKAGE_STRING='mdds 0.5.3'
+PACKAGE_VERSION='0.5.4'
+PACKAGE_STRING='mdds 0.5.4'
PACKAGE_BUGREPORT='kohei.yoshida@gmail.com'
PACKAGE_URL=''
@@ -1160,7 +1160,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures mdds 0.5.3 to adapt to many kinds of systems.
+\`configure' configures mdds 0.5.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1221,7 +1221,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of mdds 0.5.3:";;
+ short | recursive ) echo "Configuration of mdds 0.5.4:";;
esac
cat <<\_ACEOF
@@ -1305,7 +1305,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-mdds configure 0.5.3
+mdds configure 0.5.4
generated by GNU Autoconf 2.68
Copyright (C) 2010 Free Software Foundation, Inc.
@@ -1322,7 +1322,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by mdds $as_me 0.5.3, which was
+It was created by mdds $as_me 0.5.4, which was
generated by GNU Autoconf 2.68. Invocation command line was
$ $0 $@
@@ -1671,7 +1671,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-VERSION=0.5.3
+VERSION=0.5.4
PACKAGE_TARNAME=mdds
@@ -2268,7 +2268,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.5.3, which was
+This file was extended by mdds $as_me 0.5.4, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -2321,7 +2321,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.5.3
+mdds config.status 0.5.4
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
@@ -3437,7 +3437,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.5.3, which was
+This file was extended by mdds $as_me 0.5.4, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -3490,7 +3490,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.5.3
+mdds config.status 0.5.4
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
@@ -4607,7 +4607,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.5.3, which was
+This file was extended by mdds $as_me 0.5.4, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -4660,7 +4660,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.5.3
+mdds config.status 0.5.4
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
@@ -5778,7 +5778,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by mdds $as_me 0.5.3, which was
+This file was extended by mdds $as_me 0.5.4, which was
generated by GNU Autoconf 2.68. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -5831,7 +5831,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-mdds config.status 0.5.3
+mdds config.status 0.5.4
configured by $0, generated by GNU Autoconf 2.68,
with options \\"\$ac_cs_config\\"
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..678fcc7
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,52 @@
+AC_INIT(mdds, 0.5.4, kohei.yoshida@gmail.com)
+
+VERSION=AC_PACKAGE_VERSION
+AC_SUBST(VERSION)
+
+PACKAGE_TARNAME=AC_PACKAGE_TARNAME
+AC_SUBST(PACKAGE_TARNAME)
+
+AC_ARG_WITH(hash-container,
+[
+ --with-hash-container specify the type of hash containers to use in test
+ programs. Supported types are: boost, c++0x, or
+ stlport. c++0x is used if unspecified.
+
+ With c++0x, we assume that unordered_map and
+ unordered_set are available under the std namespace,
+ whereas with boost they are assumed to be defined in
+ the boost namespace. When stlport is specified, we
+ assume that hash_map and hash_set are available
+ under the std namespace.
+
+ Example: --with-hash-container=boost],
+,with_hash_container=c++0x)
+
+AC_MSG_CHECKING([hash container type])
+AC_MSG_RESULT([$with_hash_container])
+
+OBJDIR=./obj
+SRCDIR=./src
+INCDIR=./include
+QUICKCHECKDIR=./quickcheck
+AC_SUBST(OBJDIR)
+AC_SUBST(SRCDIR)
+AC_SUBST(INCDIR)
+AC_SUBST(QUICKCHECKDIR)
+
+CPPFLAGS="-DDEBUG_NODE_BASE -DUNIT_TEST -Wall -Os -g -pedantic-errors"
+if test $with_hash_container = stlport; then
+ CPPFLAGS="$CPPFLAGS -DMDDS_HASH_CONTAINER_STLPORT"
+elif test $with_hash_container = boost; then
+ CPPFLAGS="$CPPFLAGS -DMDDS_HASH_CONTAINER_BOOST"
+else
+ CPPFLAGS="$CPPFLAGS -std=c++0x"
+fi
+
+
+AC_SUBST(CPPFLAGS)
+
+AC_OUTPUT(Makefile)
+AC_OUTPUT(example/Makefile)
+AC_OUTPUT(misc/mdds.spec)
+AC_OUTPUT(VERSION)
diff --git a/include/mdds/point_quad_tree.hpp b/include/mdds/point_quad_tree.hpp
index 1eb4953..aac1b02 100644
--- a/include/mdds/point_quad_tree.hpp
+++ b/include/mdds/point_quad_tree.hpp
@@ -225,20 +225,32 @@ public:
const_iterator(const const_iterator& r) :
mp_res_nodes(r.mp_res_nodes),
m_cur_pos(r.m_cur_pos),
+ m_cur_value(r.m_cur_value),
m_end_pos(r.m_end_pos) {}
const_iterator& operator= (const const_iterator& r)
{
mp_res_nodes = r.mp_res_nodes;
m_cur_pos = r.m_cur_pos;
+ m_cur_value = r.m_cur_value;
m_end_pos = r.m_end_pos;
return *this;
}
bool operator== (const const_iterator& r) const
{
- return mp_res_nodes.get() == r.mp_res_nodes.get() &&
- m_cur_pos == r.m_cur_pos && m_end_pos == r.m_end_pos;
+ if (mp_res_nodes)
+ {
+ // Non-empty result set.
+ return mp_res_nodes.get() == r.mp_res_nodes.get() &&
+ m_cur_pos == r.m_cur_pos && m_end_pos == r.m_end_pos;
+ }
+
+ // Empty result set.
+ if (r.mp_res_nodes)
+ return false;
+
+ return m_end_pos == r.m_end_pos;
}
bool operator!= (const const_iterator& r) const
diff --git a/include/mdds/segment_tree.hpp b/include/mdds/segment_tree.hpp
index 8bc60ab..9ece0c5 100644
--- a/include/mdds/segment_tree.hpp
+++ b/include/mdds/segment_tree.hpp
@@ -156,11 +156,7 @@ public:
};
#endif
-#ifdef UNIT_TEST
public:
-#else
-private:
-#endif
typedef ::std::vector<data_type*> data_chain_type;
typedef _mdds_unordered_map_type<data_type*, ::std::pair<key_type, key_type> > segment_map_type;
typedef ::std::map<data_type*, ::std::pair<key_type, key_type> > sorted_segment_map_type;
@@ -234,6 +230,7 @@ private:
{
::std::string operator() (const node& _self) const
{
+#ifdef UNIT_TEST
::std::ostringstream os;
if (_self.is_leaf)
{
@@ -260,6 +257,9 @@ private:
}
os << " ";
return os.str();
+#else
+ return ::std::string();
+#endif
}
};
@@ -436,9 +436,18 @@ private:
bool operator== (const iterator_base& r) const
{
- return mp_res_chains.get() == r.mp_res_chains.get() &&
- m_cur_chain == r.m_cur_chain && m_cur_pos_in_chain == r.m_cur_pos_in_chain &&
- m_end_pos == r.m_end_pos;
+ if (mp_res_chains.get())
+ {
+ // non-empty result set.
+ return mp_res_chains.get() == r.mp_res_chains.get() &&
+ m_cur_chain == r.m_cur_chain && m_cur_pos_in_chain == r.m_cur_pos_in_chain &&
+ m_end_pos == r.m_end_pos;
+ }
+
+ // empty result set.
+ if (r.mp_res_chains.get())
+ return false;
+ return m_end_pos == r.m_end_pos;
}
bool operator!= (const iterator_base& r) const { return !operator==(r); }
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-openoffice/mdds.git
Reply to: