From 3141a57b2423c1735fa3f28882fcc6354af1cd90 Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 21 Oct 2003 04:58:28 +0000 Subject: [PATCH] build on win32 --- panda/src/chan/animChannelScalarDynamic.h | 2 +- panda/src/chan/animGroup.cxx | 37 +++++++++++++---------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/panda/src/chan/animChannelScalarDynamic.h b/panda/src/chan/animChannelScalarDynamic.h index 5708dbdc95..ceb3bf86ba 100644 --- a/panda/src/chan/animChannelScalarDynamic.h +++ b/panda/src/chan/animChannelScalarDynamic.h @@ -60,7 +60,7 @@ private: // This is used only if we are using the explicit set_value() // interface. bool _value_changed; - bool _float_value; + float _float_value; public: static void register_with_read_factory(); diff --git a/panda/src/chan/animGroup.cxx b/panda/src/chan/animGroup.cxx index 413af77ab0..aeab68f58c 100644 --- a/panda/src/chan/animGroup.cxx +++ b/panda/src/chan/animGroup.cxx @@ -156,26 +156,31 @@ make_child_dynamic(const string &name) { // The new child was appended to the end of our children list // by its constructor. Reposition it to replace the original // child. -#ifndef __GNUC__ - // There appears to be a compiler bug in gcc 3.2 that causes - // the following not to compile correctly: - (*ci) = new_child; - _children.pop_back(); -#else + + // I would like to use these lines, but for some reason it + // crashes: + /* + { + (*ci) = new_child; + _children.pop_back(); + } + */ + // But this longer way of achieving the same result works // instead: - Children::iterator nci; - Children new_children; - for (nci = _children.begin(); nci != _children.end(); ++nci) { - if ((*nci) == child) { - new_children.push_back(new_child); - } else if ((*nci) != new_child) { - new_children.push_back(*nci); + { + Children::iterator nci; + Children new_children; + for (nci = _children.begin(); nci != _children.end(); ++nci) { + if ((*nci) == child) { + new_children.push_back(new_child); + } else if ((*nci) != new_child) { + new_children.push_back(*nci); + } } + new_children.swap(_children); } - new_children.swap(_children); - new_children.clear(); -#endif + return new_child; } }