[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [IMP-dev] [Fwd: Build system failure, 08/28/2008]



Daniel Russel wrote:
> In addition, changing AttributeTable.h::remove_always to the following
>   void remove_always(Key k) {
>     IMP_assert(k != Key(), "Can't remove default key");
>     if (k.get_index() < map_.size()) {
>       map_[k.get_index()]= Traits::get_invalid();
>       /*while (!map_.empty()
>     && map_.back()== Traits::get_invalid()) map_.pop_back();*/
>     }
>   }
> 
> (that is, removing the cleanup loop), makes the problem go away. I think
> the line is OK, so it is all a bit disturbing.

The code also looks fine to me, but certainly appears to be the culprit.
I replaced it with an uglier use of erase(), which seems to work.
Perhaps an MSVC bug or some hidden corruption elsewhere in the code. If
the latter, I guess we'll find it eventually.

> BTW, I stumbled upon the msdn page talking about the the /EH flag for
> visual studio. Do we need to build with /EH to get things cleaned up
> properly when we throw exceptions?

We already build with /GX, which is the same as /EHsc, and I think
that's sufficient.

> It also would perhaps be useful to have the debug version of the C++
> runtime available for the tests.

True - I'll look into that.

	Ben
-- 
                      http://salilab.org/~ben/
"It is a capital mistake to theorize before one has data."
	- Sir Arthur Conan Doyle