$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r52600 - sandbox/msm/boost/msm
From: christophe.j.henry_at_[hidden]
Date: 2009-04-26 08:26:01
Author: chenry
Date: 2009-04-26 08:26:00 EDT (Sun, 26 Apr 2009)
New Revision: 52600
URL: http://svn.boost.org/trac/boost/changeset/52600
Log:
bugfix
Text files modified: 
   sandbox/msm/boost/msm/state_machine.hpp |    14 +++++++-------                          
   1 files changed, 7 insertions(+), 7 deletions(-)
Modified: sandbox/msm/boost/msm/state_machine.hpp
==============================================================================
--- sandbox/msm/boost/msm/state_machine.hpp	(original)
+++ sandbox/msm/boost/msm/state_machine.hpp	2009-04-26 08:26:00 EDT (Sun, 26 Apr 2009)
@@ -979,10 +979,10 @@
         // State is a sub fsm with exit pseudo states and gets a pointer to this fsm, so it can build a callback
         template <class StateType>
         typename ::boost::enable_if<
-            typename has_exit_pseudo_states<StateType>::type,BaseState* >::type
+            typename has_exit_pseudo_states<StateType>::type,pBaseState >::type
         new_state_helper(boost::msm::dummy<0> = 0) const
         {
-            return new StateType(containing_sm);
+            return pBaseState(new StateType(containing_sm));
         }
         // State is a sub fsm without exit pseudo states and does not get a callback to this fsm
                 // or state is a normal state and needs nothing except creation
@@ -992,22 +992,22 @@
                                                     <typename has_exit_pseudo_states<StateType>::type>::type,
                                       typename boost::mpl::not_
                                                     <typename is_pseudo_exit<StateType>::type>::type
-                   >::type,BaseState*>::type
+                   >::type,pBaseState>::type
         new_state_helper( ::boost::msm::dummy<1> = 0) const
         {
-            return new StateType;
+            return pBaseState(new StateType);
         }
         // state is exit pseudo state and gets callback to target fsm
         template <class StateType>
-        typename ::boost::enable_if<typename is_pseudo_exit<StateType>::type,BaseState* >::type
+        typename ::boost::enable_if<typename is_pseudo_exit<StateType>::type,pBaseState >::type
         new_state_helper( ::boost::msm::dummy<2> = 0) const
         {
-            BaseState* to_return = new StateType();
+            pBaseState to_return (new StateType());
             execute_return (ContainingSM::*pf) (typename StateType::event const& evt)= 
                 &ContainingSM::process_event;
             ::boost::function<execute_return (typename StateType::event const&)> fct = 
                 ::boost::bind(pf,containing_sm,_1);
-            static_cast<StateType*>(to_return)->set_forward_fct(fct);
+            static_cast<StateType*>(to_return.get())->set_forward_fct(fct);
             return to_return;
         }
         // for every defined state in the sm