$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r65356 - trunk/boost/msm/back
From: christophe.j.henry_at_[hidden]
Date: 2010-09-08 16:57:16
Author: chenry
Date: 2010-09-08 16:57:12 EDT (Wed, 08 Sep 2010)
New Revision: 65356
URL: http://svn.boost.org/trac/boost/changeset/65356
Log:
fixed transition conflict bug
Text files modified: 
   trunk/boost/msm/back/dispatch_table.hpp |    12 ++++++------                            
   1 files changed, 6 insertions(+), 6 deletions(-)
Modified: trunk/boost/msm/back/dispatch_table.hpp
==============================================================================
--- trunk/boost/msm/back/dispatch_table.hpp	(original)
+++ trunk/boost/msm/back/dispatch_table.hpp	2010-09-08 16:57:12 EDT (Wed, 08 Sep 2010)
@@ -68,16 +68,16 @@
                  HandledEnum res = first_row::execute(fsm,region_index,state,evt);
                  if (HANDLED_TRUE!=res)
                  {
-                     // if the first rejected, move on to the next one
+                    // if the first rejected, move on to the next one
                     HandledEnum sub_res = 
                          execute<typename ::boost::mpl::pop_front<Sequence>::type>(fsm,region_index,state,evt,
                             ::boost::mpl::bool_<
                                 ::boost::mpl::empty<typename ::boost::mpl::pop_front<Sequence>::type>::type::value>());
-                     // if at least one guards rejects, the event will not generate a call to no_transition
-                     HandledEnum handled = ((HANDLED_GUARD_REJECT==sub_res) || 
-                                            (HANDLED_GUARD_REJECT==res))?
-                                                HANDLED_GUARD_REJECT:sub_res;
-                     return handled;
+                    // if at least one guards rejects, the event will not generate a call to no_transition
+                    if ((HANDLED_FALSE==sub_res) && (HANDLED_GUARD_REJECT==res) )
+                        return HANDLED_GUARD_REJECT;
+                    else
+                        return sub_res;
                  }
                  return res;
             }