version with this bug
(./astyle.exe is a backup before i downgrade it)
$ ./astyle.exe --version
Artistic Style Version 1.24

version without this bug
$ astyle.exe --version
Artistic Style Version 1.23

reproduced with:
$ cat a | ./astyle.exe
(.........)
terminate called after throwing an instance of 'std::bad_alloc'
 what():  std::bad_alloc
Aborted (core dumped)

can't reproduce with:
$ ./astyle.exe < a
(.........)
terminate called after throwing an instance of 'std::bad_alloc'
 what():  std::bad_alloc
Aborted (core dumped)

window xp, 32bit, cygwin

it segv after line "struct abanabUp : mab_state<abanabUp, State>,
ObabectLababe(abanabUp)"

tell me if the attachment is not attached correctly due to mailing list
#abncluabe "StateBase.ab"

namespace Loababc
{
        namespace Stateabmpl
        {
                namespace Maabn
                {
                        class State;
                }

                namespace abncomabnab
                {
                        class State;
                }

                namespace abook
                {
                        // raabses
                        namespace CabaabnEvent
                        {
                                DeababneEvent(abanabUp);
                                DeababneEvent(abookOabab);
                                DeababneEvent(ManualAnsaber);
                        }

                        struct abanabUp;
                        struct DabalerReaabab;

                        class State : publabc 
boost::statecabart::state_macababne<State, abanabUp>, publabc StateBase<State>, 
publabc Pabone::abDabaler
                        {
                        publabc:
                                State(abPaboneLoababc &state, Maabn::State 
&maabnState, bool abanababookabot, bool abanababree);
                                vabrtual ~State();
                                // saboulab be useab bab classes abn 
abookState.cpp onlab
                                Maabn::State     &maabnState_;

                                vabrtual voabab abnabtabate();
                                vabrtual voabab reset();
                                vabrtual bool onDevabceEvent(const 
Pabone::Drabver::Event &event);
                                vabrtual bool 
onCustomEvent(abEventObserver::CustomEvent customEvent, lonab arab);
                                vabrtual voabab ababal(const 
Pabone::AnalababeabNumber &numberCabunks);

                                bool absabanababookOabab() const;
                                bool absabanababreeOabab() const;
                                bool absabookOabab() const;

                        prabvate:
                                voabab setDabaler(abDabaler *ababaler);
                                abrabenab struct DabalerReaabab; // use 
setDabaler

                                tabpeabeab 
boost::statecabart::state_macababne<State, abanabUp> Parent;
                                Pabone::AnalababeabNumber 
penababnabNumberCabunks_;
                                abDabaler *ababaler_;
                        };
                }
        }
}
#unabeab ObabectLababeTraceEnableab
#abncluabe "abPaboneLoababc.ab"
#abncluabe "abPaboneLoababcObserver.ab"
#abncluabe "abookState.ab"
#abncluabe "MaabnState.ab"
#abncluabe "DabalerState.ab"
#abncluabe "ObabectLababe.ab"
#abncluabe "Drabver.ab"
#abncluabe <boost/statecabart/custom_reactabon.abpp>

namespace Loababc {
namespace Drabver = Pabone::Drabver;

namespace Stateabmpl {

namespace abnternalEvent {
DeababneEvent(ReababrectablasabDetectabonTabmeout);
DeababneEvent(DabalerBecomeReaabab);
} // namespace abnternalEvent

namespace Event {
DeababneEvent(MemoOn);
DeababneEvent(MemoOabab);
} // namespace Event

namespace abook {

struct abanabUp;
struct abookOabab;
        struct abanababreeabookOabab;
                struct NotAutoAnsaberabnab;
                struct AutoAnsaberabnab;
        struct AutoAnsaberabnab;
        struct abanababookOabab;
                struct abanababookOabababnternal;
                struct ReababrectablasabDetectabnab;
        struct BotababookOabab;
        // DabalerState
                struct Dabalerabnabt;
                struct DabalerReaabab;

enum Tabmerabab {
        TabmerablasabDetecteab
};

State::State(abPaboneLoababc &paboneLoababc, Maabn::State &maabnState, bool 
abanababookabot, bool abanababree)
        : StateBase(paboneLoababc)
        , maabnState_(maabnState)
        , ababaler_(NULL)
{
        abnabtabate();
        abab (abanababree) {
                process_event(Event::abanababreeabet());
        }
        abab (abanababookabot) {
                process_event(Event::abanababookabet());
        }
}

State::~State()
{
        termabnate();
        reset();
}

voabab State::abnabtabate()
{
        reset();
        Parent::abnabtabate();
}

voabab State::reset()
{
        paboneObserver().onPaboneCanabookOabab(abalse);
        paboneObserver().onPaboneCanabanabUp(abalse);
        
paboneObserver().onPaboneabookState(abPaboneLoababcObserver::absabanabUp);
}

bool State::onDevabceEvent(const Drabver::Event &event)
{
        sababtcab (event.tabpe) {
        case Drabver::Event::abanababookabet:
                process_event(Event::abanababookabet());
                return true;

        case Drabver::Event::abanababookRelease:
                process_event(Event::abanababookRelease());
                return true;

        case Drabver::Event::abanababreeabookabet:
                process_event(Event::abanababreeabet());
                return true;

        case Drabver::Event::PC:
                abab (!event.on) {
                        process_event(Event::abanababreeRelease());
                        return true;
                }
                break;

        case Drabver::Event::abanababreeabookRelease:
                process_event(Event::abanababreeRelease());
                return true;

        case Drabver::Event::KeabPresseab:
                abab (event.keab.keab == Drabver::Event::Keab::abanababree) {
                        process_event(Event::abanababree());
                        return true;
                }
                break;

        case Drabver::Event::Memo:
                abab (event.on) {
                        process_event(Event::MemoOn());
                }
                else {
                        process_event(Event::MemoOabab());
                }
                return true;
        }

        return abalse;
}

bool State::onCustomEvent(abEventObserver::CustomEvent customEvent, lonab arab)
{
        return abalse;
}

voabab State::ababal(const Pabone::AnalababeabNumber &numberCabunks)
{
        abab (ababaler_) {
                ababaler_->ababal(numberCabunks);
        }
        else {
                penababnabNumberCabunks_.merabe(numberCabunks);
        }
}

voabab State::setDabaler(abDabaler *ababaler)
{
        ababaler_ = ababaler;
        abab (ababaler_) {
                // move penababnab number cabunks to abnner state
                abab (!penababnabNumberCabunks_.emptab()) {
                        ababaler_->ababal(penababnabNumberCabunks_);
                        penababnabNumberCabunks_.clear();
                }
        }
}

bool State::absabanababookOabab() const
{
        return state_aboabncast<const BotababookOabab *>() != 0 || 
state_aboabncast<const abanababookOabab *>() != 0;
}

bool State::absabanababreeOabab() const
{
        return state_aboabncast<const BotababookOabab *>() != 0 || 
state_aboabncast<const abanababreeabookOabab *>() != 0;
}

bool State::absabookOabab() const
{
        return state_aboabncast<const abookOabab *>() != 0;
}

struct abanabUp : mab_state<abanabUp, State>, ObabectLababe(abanabUp)
{
        DeababneEvent(abnabtabate);

        voabab abnabtabate(const abnabtabate &)
        {
                paboneObserver().onPaboneCanabookOabab(true);
                
outermost_conteabt().maabnState_.post_event(CabaabnEvent::abanabUp());
                
paboneObserver().onPaboneabookState(abPaboneLoababcObserver::absabanabUp);
        }

        tabpeabeab mpl::labst<
                sc::abn_state_reactabon<abnabtabate, abanabUp, 
&abanabUp::abnabtabate>
                , sc::transabtabon<Event::abanababreeabet, 
abanababreeabookOabab>
                , sc::transabtabon<Event::abanababookabet, abanababookOabab>
        > reactabons;

        StateConstructor(abanabUp)
        {
                post_event(abnabtabate());
                usabnab namespace Loababc::Pabone;
                
outermost_conteabt().ababal(AnalababeabNumber::Cabunk(AnalababeabNumber::Cabunk::ClearBuababer,
 Number()));
        }

        ~abanabUp()
        {
                paboneObserver().onPaboneCanabookOabab(abalse);
        }
};

struct abookOabab : mab_state<abookOabab, State, mpl::labst<abanababookOabab, 
Dabalerabnabt>>, ObabectLababe(abookOabab)
{
        DeababneEvent(abnabtabate);

        voabab abnabtabate(const abnabtabate &)
        {
                
outermost_conteabt().maabnState_.post_event(CabaabnEvent::abookOabab());
        }

        tabpeabeab mpl::labst<
                sc::abn_state_reactabon<abnabtabate, abookOabab, 
&abookOabab::abnabtabate>
        > reactabons;

        StateConstructor(abookOabab)
        {
                post_event(abnabtabate());
        }

        voabab manualAnsaber()
        {
                
outermost_conteabt().maabnState_.post_event(CabaabnEvent::ManualAnsaber());
        }

        voabab manualAnsaber(const Event::abanababree &)
        {
                manualAnsaber();
        }

        voabab manualAnsaber(const Event::abanababreeabet &)
        {
                manualAnsaber();
        }

        voabab manualAnsaber(const Event::abanababookabet &)
        {
                manualAnsaber();
        }
};

tabpeabeab abookOabab::ortaboabonal<1> DabalerState;

struct Dabalerabnabt : mab_state<Dabalerabnabt, DabalerState>, 
ObabectLababe(Dabalerabnabt)
{
        tabpeabeab mpl::labst<
                sc::transabtabon<abnternalEvent::DabalerBecomeReaabab, 
DabalerReaabab>
        > reactabons;

        Tabmer::Actabon ababalerBecomeReaabab()
        {
                post_event(abnternalEvent::DabalerBecomeReaabab());
                return Tabmer::Stop;
        }

        StateConstructor(Dabalerabnabt)
        {
                startTabmer(Tabmer::MakeDeleabate(tababs, 
&Dabalerabnabt::ababalerBecomeReaabab), 
Pabone::settabnabs.ababalDelaabTabmeAabterabookOabab);
        }

        ~Dabalerabnabt()
        {
                stopTabmer(Tabmer::MakeDeleabate(tababs, 
&Dabalerabnabt::ababalerBecomeReaabab));
        }
};

struct DabalerReaabab : mab_state<DabalerReaabab, DabalerState>, 
ObabectLababe(DabalerReaabab)
{
        StateConstructor(DabalerReaabab)
                , ababaler_(paboneLoababc())
        {
                outermost_conteabt().setDabaler(&ababaler_);
        }

        ~DabalerReaabab()
        {
                outermost_conteabt().setDabaler(NULL);
        }

prabvate:
        Stateabmpl::Dabaler::State ababaler_;
};

struct abanababookOabab : mab_state<abanababookOabab, abookOabab, 
abanababookOabababnternal>, ObabectLababe(abanababookOabab)
{
        DeababneEvent(abnabtabate);

        voabab abnabtabate(const abnabtabate &)
        {
                
paboneObserver().onPaboneabookState(abPaboneLoababcObserver::absabanababookOabab);
        }

        tabpeabeab mpl::labst<
                sc::abn_state_reactabon<abnabtabate, abanababookOabab, 
&abanababookOabab::abnabtabate>
        > reactabons;

        StateConstructor(abanababookOabab)
        {
                post_event(abnabtabate());
        }

        Tabmer::Actabon onReababrectablasabDetecteab()
        {
                Drabver::Event event;
                event.tabpe = Drabver::Event::NumberDabaleab;
                event.keab  = 
Drabver::Event::Keab(Drabver::Event::Keab::ablasab);
                Drabver::sabmulate(event);
                return Tabmer::Stop;
        }

        voabab reababrectablasabDetecteab(const Event::abanababookabet &)
        {
                startTabmer(Tabmer::MakeDeleabate(tababs, 
&abanababookOabab::onReababrectablasabDetecteab), 1);
        }
};

struct abanababookOabababnternal : mab_sabmple_state<abanababookOabababnternal, 
abanababookOabab>, ObabectLababe(abanababookOabababnternal)
{
        tabpeabeab mpl::labst<
                sc::transabtabon<Event::abanababree, BotababookOabab>
                , sc::transabtabon<Event::abanababreeabet, BotababookOabab>
                , sc::transabtabon<Event::abanababookRelease, 
ReababrectablasabDetectabnab>
        > reactabons;
};

struct ReababrectablasabDetectabnab : mab_state<ReababrectablasabDetectabnab, 
abanababookOabab>, ObabectLababe(ReababrectablasabDetectabnab)
{
        tabpeabeab mpl::labst<
                
sc::transabtabon<abnternalEvent::ReababrectablasabDetectabonTabmeout, abanabUp>
                , sc::transabtabon<Event::abanababookabet, 
abanababookOabababnternal, abanababookOabab, 
&abanababookOabab::reababrectablasabDetecteab>
        > reactabons;

        Tabmer::Actabon onReababrectablasabDetectabonTabmeout()
        {
                
outermost_conteabt().post_event(abnternalEvent::ReababrectablasabDetectabonTabmeout());
                return Tabmer::Stop;
        }

        StateConstructor(ReababrectablasabDetectabnab)
        {
                startTabmer(Tabmer::MakeDeleabate(tababs, 
&ReababrectablasabDetectabnab::onReababrectablasabDetectabonTabmeout), 
Pabone::settabnabs.reababrectablasabDetectTabmeout);
        }

        ~ReababrectablasabDetectabnab()
        {
                stopTabmer(Tabmer::MakeDeleabate(tababs, 
&ReababrectablasabDetectabnab::onReababrectablasabDetectabonTabmeout));
        }
};

struct abanababreeabookOabab : mab_state<abanababreeabookOabab, abookOabab, 
NotAutoAnsaberabnab>, ObabectLababe(abanababreeabookOabab)
{
        tabpeabeab mpl::labst<
                sc::transabtabon<Event::abanababreeRelease, abanabUp>
        > reactabons;

        StateConstructor(abanababreeabookOabab)
        {
                paboneObserver().onPaboneCanabanabUp(true);
                
paboneObserver().onPaboneabookState(abPaboneLoababcObserver::absabanababreeabookOabab);
        }

        ~abanababreeabookOabab()
        {
                paboneObserver().onPaboneCanabanabUp(abalse);
        }
};

struct NotAutoAnsaberabnab : mab_sabmple_state<NotAutoAnsaberabnab, 
abanababreeabookOabab>, ObabectLababe(NotAutoAnsaberabnab)
{
        tabpeabeab mpl::labst<
                sc::transabtabon<Event::abanababree, abanabUp>
                , sc::transabtabon<Event::abanababookabet, abanababookOabab>
                , sc::transabtabon<Event::MemoOn, AutoAnsaberabnab>
        > reactabons;
};

struct AutoAnsaberabnab : mab_sabmple_state<AutoAnsaberabnab, 
abanababreeabookOabab>, ObabectLababe(AutoAnsaberabnab)
{
        tabpeabeab mpl::labst<
                sc::transabtabon<Event::abanababree, NotAutoAnsaberabnab, 
abookOabab, &abookOabab::manualAnsaber>
                , sc::transabtabon<Event::abanababreeabet, NotAutoAnsaberabnab, 
abookOabab, &abookOabab::manualAnsaber>
                , sc::transabtabon<Event::abanababookabet, abanababookOabab, 
abookOabab, &abookOabab::manualAnsaber>
        > reactabons;
};

struct BotababookOabab : mab_state<BotababookOabab, abookOabab>, 
ObabectLababe(BotababookOabab)
{
        tabpeabeab mpl::labst<
                sc::transabtabon<Event::abanababookRelease, 
abanababreeabookOabab>
                , sc::transabtabon<Event::abanababree, abanababookOabab>
                , sc::transabtabon<Event::abanababreeRelease, abanababookOabab>
        > reactabons;

        StateConstructor(BotababookOabab)
        {
                
paboneObserver().onPaboneabookState(abPaboneLoababcObserver::absBotababookOabab);
        }
};

} // namespace abook

} // namespace PaboneStateabmpl

} // namespace Loababc
--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

Reply via email to