summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Mitz <mitza-oci@users.noreply.github.com>2007-06-08 19:28:45 +0000
committerAdam Mitz <mitza-oci@users.noreply.github.com>2007-06-08 19:28:45 +0000
commitfd84debb427c78736666051cda5fdb77fbd6c0ef (patch)
tree97639f10099715627cf6d7067003efe8e02d839b
parent5cfab82fd2728de918b9ab864c23197e29049a77 (diff)
downloadATCD-fd84debb427c78736666051cda5fdb77fbd6c0ef.tar.gz
ChangeLogTag: Fri Jun 8 19:23:45 UTC 2007 Adam Mitz <mitza@ociweb.com>
-rw-r--r--TAO/ChangeLog20
-rw-r--r--TAO/tao/Generic_Sequence_T.h10
-rw-r--r--TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp2
-rw-r--r--TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp2
-rw-r--r--TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp26
-rw-r--r--TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp4
-rw-r--r--TAO/tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp14
-rw-r--r--TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp10
-rw-r--r--TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp6
-rw-r--r--TAO/tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp10
-rw-r--r--TAO/tests/Sequence_Unit_Tests/value_sequence_tester.hpp27
11 files changed, 82 insertions, 49 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 439224ddf89..bd80bebb0f7 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,23 @@
+Fri Jun 8 19:23:45 UTC 2007 Adam Mitz <mitza@ociweb.com>
+
+ * tao/Generic_Sequence_T.h:
+
+ A default-constructed unbounded sequence has no buffer allocated, so
+ "release" should be false. This restores the behavior of sequences
+ before the recent re-write.
+
+ * tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/string_sequence_tester.hpp:
+ * tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp:
+ * tests/Sequence_Unit_Tests/value_sequence_tester.hpp:
+
+ Updated unit tests to take this into account.
+
Fri Jun 08 10:20:00 UTC 2007 Simon Massey <sma@prismtech.com>
* TAO/orbsvcs/orbsvcs/SSLIOP/params_dup.c:
diff --git a/TAO/tao/Generic_Sequence_T.h b/TAO/tao/Generic_Sequence_T.h
index 50a7819434a..7f6ffb35c2c 100644
--- a/TAO/tao/Generic_Sequence_T.h
+++ b/TAO/tao/Generic_Sequence_T.h
@@ -84,7 +84,7 @@ public:
: maximum_(allocation_traits::default_maximum())
, length_(0)
, buffer_(allocation_traits::default_buffer_allocation())
- , release_(true)
+ , release_(buffer_ != 0)
{
}
@@ -116,6 +116,7 @@ public:
, buffer_(0)
, release_(false)
{
+ if (rhs.maximum_ == 0) return;
generic_sequence tmp(rhs.maximum_);
tmp.length_ = rhs.length_;
element_traits::copy_range(
@@ -233,6 +234,7 @@ public:
if (buffer_ == 0)
{
buffer_ = allocbuf(maximum_);
+ release_ = true;
}
return buffer_;
}
@@ -274,6 +276,10 @@ public:
if (buffer_ == 0)
{
buffer_ = allocbuf(maximum_);
+ if (!orphan)
+ {
+ release_ = true;
+ }
}
if (!orphan)
{
@@ -314,7 +320,7 @@ private:
mutable value_type * buffer_;
/// If true then the sequence should release the buffer when it is
/// destroyed.
- CORBA::Boolean release_;
+ mutable CORBA::Boolean release_;
};
} // namespace details
diff --git a/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp
index f7a4a1d15df..4cf5ea06a96 100644
--- a/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/bounded_string_sequence_ut.cpp
@@ -304,7 +304,7 @@ struct Tester
void add_all(test_suite * ts)
{
typedef string_sequence_tester<tested_sequence> common;
- boost::shared_ptr<common> tester(common::allocate());
+ boost::shared_ptr<common> tester(common::allocate(true));
tester->add_all(ts);
boost::shared_ptr<Tester> shared_this(self_);
diff --git a/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp
index c2aea535717..4ed1a2d2041 100644
--- a/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/bounded_value_sequence_ut.cpp
@@ -351,7 +351,7 @@ init_unit_test_suite(int, char*[])
{
typedef value_sequence_tester<tested_sequence,tested_allocation_traits> common;
- boost::shared_ptr<common> tester(common::allocate());
+ boost::shared_ptr<common> tester(common::allocate(true));
tester->add_all(ts);
}
diff --git a/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp b/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
index 1e6227eb22f..2b4d3d6406f 100644
--- a/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
+++ b/TAO/tests/Sequence_Unit_Tests/string_sequence_tester.hpp
@@ -127,10 +127,10 @@ struct string_sequence_tester
CORBA::ULong(tested_allocation_traits::default_maximum()),
x.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length());
- BOOST_CHECK_EQUAL(true, x.release());
+ BOOST_CHECK_EQUAL(bounded_, x.release());
}
BOOST_CHECK_MESSAGE(a.expect(0), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 1 : 0), f);
}
void test_copy_constructor_from_default()
@@ -145,7 +145,7 @@ struct string_sequence_tester
a.reset(); f.reset(); i.reset(); d.reset();
tested_sequence y(x);
- BOOST_CHECK_MESSAGE(a.expect(1), a);
+ BOOST_CHECK_MESSAGE(a.expect(bounded_ ? 1 : 0), a);
BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(i.expect(0), i);
BOOST_CHECK_MESSAGE(d.expect(0), d);
@@ -154,7 +154,7 @@ struct string_sequence_tester
BOOST_CHECK_EQUAL(x.length(), y.length());
BOOST_CHECK_EQUAL(x.release(), y.release());
}
- BOOST_CHECK_MESSAGE(f.expect(2), f);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 2 : 0), f);
}
void test_index_accessor()
@@ -260,19 +260,19 @@ struct string_sequence_tester
CORBA::ULong(tested_allocation_traits::default_maximum()),
x.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length());
- BOOST_CHECK_EQUAL(true, x.release());
+ BOOST_CHECK_EQUAL(bounded_ , x.release());
tested_sequence y;
BOOST_CHECK_MESSAGE(a.expect(0), a);
y = x;
- BOOST_CHECK_MESSAGE(a.expect(1), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(a.expect(bounded_ ? 1 : 0), a);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 1 : 0), f);
BOOST_CHECK_EQUAL(x.maximum(), y.maximum());
BOOST_CHECK_EQUAL(x.length(), y.length());
BOOST_CHECK_EQUAL(x.release(), y.release());
}
- BOOST_CHECK_MESSAGE(f.expect(2), f);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 2 : 0), f);
}
void test_assignment_values()
@@ -483,17 +483,21 @@ struct string_sequence_tester
}
- static boost::shared_ptr<string_sequence_tester> allocate()
+ static boost::shared_ptr<string_sequence_tester> allocate(bool bounded = false)
{
boost::shared_ptr<string_sequence_tester> ptr(
- new string_sequence_tester);
+ new string_sequence_tester(bounded));
ptr->self_ = ptr;
return ptr;
}
private:
- string_sequence_tester() {}
+ string_sequence_tester(bool bounded)
+ : bounded_(bounded)
+ {}
+
+ bool bounded_;
boost::weak_ptr<string_sequence_tester> self_;
};
diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp
index e8f829b732d..0116dd37dcb 100644
--- a/TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/unbounded_fwd_object_reference_sequence_ut.cpp
@@ -43,10 +43,10 @@ struct Tester
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length());
- BOOST_CHECK_EQUAL(true, x.release());
+ BOOST_CHECK_EQUAL(false, x.release());
}
BOOST_CHECK_MESSAGE(a.expect(0), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(i.expect(0), i);
}
diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp
index 7d02abdde69..263576143d9 100644
--- a/TAO/tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/unbounded_object_reference_sequence_ut.cpp
@@ -43,10 +43,10 @@ struct Tester
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length());
- BOOST_CHECK_EQUAL(true, x.release());
+ BOOST_CHECK_EQUAL(false, x.release());
}
BOOST_CHECK_MESSAGE(a.expect(0), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(i.expect(0), i);
}
@@ -140,8 +140,8 @@ struct Tester
tested_sequence y(x);
}
- BOOST_CHECK_MESSAGE(a.expect(1), a);
- BOOST_CHECK_MESSAGE(f.expect(2), f);
+ BOOST_CHECK_MESSAGE(a.expect(0), a);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(i.expect(0), i);
}
@@ -374,7 +374,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, false);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(r.expect(0), r);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
@@ -400,7 +400,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, false);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(r.expect(0), 0);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
@@ -426,7 +426,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(r.expect(0), 0);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp
index efb44423d9e..acc347afc39 100644
--- a/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/unbounded_octet_sequence_ut.cpp
@@ -73,7 +73,7 @@ struct Tester
y = x;
BOOST_CHECK_MESSAGE(a.expect(1), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(16), y.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(8), y.length());
BOOST_CHECK_EQUAL(true, y.release());
@@ -154,7 +154,7 @@ struct Tester
BOOST_CHECK_THROW(x.length(8), testing_exception);
BOOST_CHECK_MESSAGE(a.expect(1), a);
}
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
}
value_type * alloc_and_init_buffer()
@@ -238,7 +238,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length());
@@ -264,7 +264,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, false);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length());
@@ -290,7 +290,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, true);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length());
diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp
index 53f0941275c..0293fb0a4f0 100644
--- a/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/unbounded_string_sequence_ut.cpp
@@ -297,7 +297,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(r.expect(0), 0);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
@@ -323,7 +323,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, false);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(r.expect(0), 0);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
@@ -349,7 +349,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, false);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_MESSAGE(r.expect(0), r);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
diff --git a/TAO/tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp b/TAO/tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp
index d3a110910bc..2c42548cd69 100644
--- a/TAO/tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp
+++ b/TAO/tests/Sequence_Unit_Tests/unbounded_value_sequence_ut.cpp
@@ -70,7 +70,7 @@ struct Tester
y = x;
BOOST_CHECK_MESSAGE(a.expect(1), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(16), y.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(8), y.length());
BOOST_CHECK_EQUAL(true, y.release());
@@ -151,7 +151,7 @@ struct Tester
BOOST_CHECK_THROW(x.length(8), testing_exception);
BOOST_CHECK_MESSAGE(a.expect(1), a);
}
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
}
value_type * alloc_and_init_buffer()
@@ -262,7 +262,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length());
@@ -288,7 +288,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, false);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length());
@@ -314,7 +314,7 @@ struct Tester
tested_sequence a;
a.replace(8, 4, buffer, true);
BOOST_CHECK_MESSAGE(c.expect(0), c);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(0), f);
BOOST_CHECK_EQUAL(CORBA::ULong(8), a.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(4), a.length());
diff --git a/TAO/tests/Sequence_Unit_Tests/value_sequence_tester.hpp b/TAO/tests/Sequence_Unit_Tests/value_sequence_tester.hpp
index 02e88aad88e..7e502dc966d 100644
--- a/TAO/tests/Sequence_Unit_Tests/value_sequence_tester.hpp
+++ b/TAO/tests/Sequence_Unit_Tests/value_sequence_tester.hpp
@@ -35,10 +35,10 @@ struct value_sequence_tester
CORBA::ULong(tested_allocation_traits::default_maximum()),
x.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length());
- BOOST_CHECK_EQUAL(true, x.release());
+ BOOST_CHECK_EQUAL(bounded_, x.release());
}
BOOST_CHECK_MESSAGE(a.expect(0), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 1 : 0), f);
}
@@ -53,15 +53,15 @@ struct value_sequence_tester
CORBA::ULong(tested_allocation_traits::default_maximum()),
x.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length());
- BOOST_CHECK_EQUAL(true, x.release());
+ BOOST_CHECK_EQUAL(bounded_, x.release());
tested_sequence y(x);
- BOOST_CHECK_MESSAGE(a.expect(1), a);
+ BOOST_CHECK_MESSAGE(a.expect(bounded_ ? 1 : 0), a);
BOOST_CHECK_EQUAL(x.maximum(), y.maximum());
BOOST_CHECK_EQUAL(x.length(), y.length());
BOOST_CHECK_EQUAL(x.release(), y.release());
}
- BOOST_CHECK_MESSAGE(f.expect(2), f);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 2 : 0), f);
}
void test_index_accessor()
@@ -125,19 +125,19 @@ struct value_sequence_tester
CORBA::ULong(tested_allocation_traits::default_maximum()),
x.maximum());
BOOST_CHECK_EQUAL(CORBA::ULong(0), x.length());
- BOOST_CHECK_EQUAL(true, x.release());
+ BOOST_CHECK_EQUAL(bounded_, x.release());
tested_sequence y;
BOOST_CHECK_MESSAGE(a.expect(0), a);
y = x;
- BOOST_CHECK_MESSAGE(a.expect(1), a);
- BOOST_CHECK_MESSAGE(f.expect(1), f);
+ BOOST_CHECK_MESSAGE(a.expect(bounded_ ? 1 : 0), a);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 1 : 0), f);
BOOST_CHECK_EQUAL(x.maximum(), y.maximum());
BOOST_CHECK_EQUAL(x.length(), y.length());
BOOST_CHECK_EQUAL(x.release(), y.release());
}
- BOOST_CHECK_MESSAGE(f.expect(2), f);
+ BOOST_CHECK_MESSAGE(f.expect(bounded_ ? 2 : 0), f);
}
void test_assignment_values()
@@ -250,18 +250,21 @@ struct value_sequence_tester
shared_this));
}
- static boost::shared_ptr<value_sequence_tester> allocate()
+ static boost::shared_ptr<value_sequence_tester> allocate(bool bounded = false)
{
boost::shared_ptr<value_sequence_tester> ptr(
- new value_sequence_tester);
+ new value_sequence_tester(bounded));
ptr->self_ = ptr;
return ptr;
}
private:
- value_sequence_tester() {}
+ value_sequence_tester(bool bounded)
+ : bounded_ (bounded)
+ {}
+ bool bounded_;
boost::weak_ptr<value_sequence_tester> self_;
};