From 26b245a4e58853cb6e463a1ccf9538d6dca8709f Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Tue, 19 Sep 2006 20:45:50 +0000 Subject: [PATCH] catch possible segfault with get_sequence() --- alg/sequence.cpp | 5 ++++- alg/test/test_sequence.cpp | 7 +++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/alg/sequence.cpp b/alg/sequence.cpp index 92a7edc..845a016 100644 --- a/alg/sequence.cpp +++ b/alg/sequence.cpp @@ -603,7 +603,10 @@ void Sequence::set_sequence(const std::string& s) std::string Sequence::get_sequence() const { - return *seq; + if (seq) + return *seq; + else + return std::string(); } Sequence::const_reference Sequence::operator[](Sequence::size_type i) const diff --git a/alg/test/test_sequence.cpp b/alg/test/test_sequence.cpp index 3a2b9db..c588555 100644 --- a/alg/test/test_sequence.cpp +++ b/alg/test/test_sequence.cpp @@ -17,6 +17,13 @@ namespace fs=boost::filesystem; using namespace std; +BOOST_AUTO_TEST_CASE( sequence_get_sequence ) +{ + Sequence s; + // make sure that retrieving the sequence doesn't throw an error + BOOST_CHECK_EQUAL(s.get_sequence(), std::string() ); +} + //! when we try to load a missing file, do we get an error? BOOST_AUTO_TEST_CASE( sequence_load_exception ) { -- 2.30.2