Commit 5f806cfa authored by Maciej Suminski's avatar Maciej Suminski
Browse files

Minor fixes to the Tool Framework.

parent f7ecc749
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -470,8 +470,6 @@ void TOOL_MANAGER::finishTool( TOOL_STATE* aState )

bool TOOL_MANAGER::ProcessEvent( TOOL_EVENT& aEvent )
{
// wxLogDebug( "event: %s", aEvent.Format().c_str() );

    // Early dispatch of events destined for the TOOL_MANAGER
    if( !dispatchStandardEvents( aEvent ) )
        return false;
+15 −7
Original line number Diff line number Diff line
@@ -56,11 +56,10 @@ template <class ReturnType, class ArgType>
class COROUTINE
{
public:
    COROUTINE()
    COROUTINE() :
        m_saved( NULL ), m_self( NULL ), m_stack( NULL ), m_stackSize( c_defaultStackSize ),
        m_running( false )
    {
        m_stackSize = c_defaultStackSize;
        m_stack = NULL;
        m_saved = NULL;
    }

    /**
@@ -69,7 +68,8 @@ public:
     */
    template <class T>
    COROUTINE( T* object, ReturnType(T::* ptr)( ArgType ) ) :
        m_func( object, ptr ), m_saved( NULL ), m_stack( NULL ), m_stackSize( c_defaultStackSize )
        m_func( object, ptr ), m_self( NULL ), m_saved( NULL ), m_stack( NULL ),
        m_stackSize( c_defaultStackSize ), m_running( false )
    {
    }

@@ -78,8 +78,10 @@ public:
     * Creates a coroutine from a delegate object
     */
    COROUTINE( DELEGATE<ReturnType, ArgType> aEntry ) :
        m_func( aEntry ), m_saved( NULL ), m_stack( NULL ), m_stackSize( c_defaultStackSize )
    {};
        m_func( aEntry ), m_saved( NULL ), m_self( NULL ), m_stack( NULL ),
        m_stackSize( c_defaultStackSize ), m_running( false )
    {
    }

    ~COROUTINE()
    {
@@ -138,6 +140,12 @@ public:
        // align to 16 bytes
        void* sp = (void*) ( ( ( (ptrdiff_t) m_stack ) + m_stackSize - 0xf ) & ( ~0x0f ) );

        // correct the stack size
        m_stackSize -= ( (size_t) m_stack + m_stackSize - (size_t) sp );

        assert( m_self == NULL );
        assert( m_saved == NULL );

        m_args = &aArgs;
        m_self = boost::context::make_fcontext( sp, m_stackSize, callerStub );
        m_saved = new boost::context::fcontext_t();
+0 −4
Original line number Diff line number Diff line
@@ -318,9 +318,6 @@ public:

            if( m_commandId && aEvent.m_commandId )
                return *m_commandId == *aEvent.m_commandId;

            // Command-type event has to contain either id or string
            assert( false );
        }

        return true;
@@ -496,7 +493,6 @@ inline const TOOL_EVENT_LIST operator||( const TOOL_EVENT& aEventA, const TOOL_E
    return l;
}


inline const TOOL_EVENT_LIST operator||( const TOOL_EVENT& aEvent,
                                         const TOOL_EVENT_LIST& aEventList )
{
+0 −3
Original line number Diff line number Diff line
@@ -384,9 +384,6 @@ private:

    /// Flag saying if the currently processed event should be passed to other tools.
    bool m_passEvent;

    /// Pointer to the tool on the top of the active tools stack.
    TOOL_STATE* m_currentTool;
};

#endif