view tango/example/external/GlueFlectioned.d @ 373:d1574e142e93 trunk

[svn r394] Fixed the new DtoNullValue function
author lindquist
date Tue, 15 Jul 2008 15:16:56 +0200
parents 1700239cab2e
children
line wrap: on
line source

import tango.core.Exception;
import cn.kuehne.flectioned;


TracedExceptionInfo traceHandler( void* ptr = null )
{
    class FlectionedTrace :
        TracedExceptionInfo
    {
        this( void* ptr = null )
        {
            if( ptr )
                m_trace = Trace.getTrace( cast(size_t) ptr );
            else
                m_trace = Trace.getTrace();
        }

        int opApply( int delegate( inout char[] ) dg )
        {
            int ret = 0;
            foreach( t; m_trace )
            {
                char[] buf = t.toString;
                ret = dg( buf );
                if( ret != 0 )
                    break;
            }
            return ret;
        }

    private:
        Trace[] m_trace;
    }

    return new FlectionedTrace( ptr );
}


static this()
{
    setTraceHandler( &traceHandler );
}