From f9953c6a4e56d5f0f2c58b25881f2900d382fdbd Mon Sep 17 00:00:00 2001
From: stefan <stefan@5a81b35b-ba03-0410-adc8-b2c5c5119f08>
Date: Fri, 7 May 2010 09:33:29 +0000
Subject: [PATCH] Fixes for SequenceHandle (added some checks)

git-svn-id: https://dng.biozentrum.unibas.ch/svn/openstructure/trunk@2197 5a81b35b-ba03-0410-adc8-b2c5c5119f08
---
 modules/seq/base/src/impl/sequence_impl.cc | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/modules/seq/base/src/impl/sequence_impl.cc b/modules/seq/base/src/impl/sequence_impl.cc
index 69fd3f42f..d57989d95 100644
--- a/modules/seq/base/src/impl/sequence_impl.cc
+++ b/modules/seq/base/src/impl/sequence_impl.cc
@@ -63,8 +63,13 @@ SequenceImplPtr SequenceImpl::FromString(const String& seq_name,
 
 void SequenceImpl::SetString(const String& seq)
 {
-  seq_string_=seq;
-  this->ShiftsFromSequence();
+  if (SequenceImpl::IsSequenceStringSane(seq)) {
+    seq_string_=seq;
+    this->ShiftsFromSequence();
+  }
+  else {
+    throw InvalidSequence();
+  }
 }
 
 SequenceImpl::SequenceImpl(const String& seq_name,
@@ -207,7 +212,7 @@ void SequenceImpl::AttachView(const mol::EntityView& view)
 {
   static const char* msg="Expected 1 chain, but %d chains found";
   attached_view_=view;
-  if (attached_view_.GetChainCount()!=1) {
+  if (view.IsValid() && attached_view_.GetChainCount()!=1) {
     throw IntegrityError(str(format(msg) % attached_view_.GetChainCount()));
   }
 }
-- 
GitLab