gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] std::bad_cast


From: Andrea Palmatè
Subject: Re: [Gnash-dev] std::bad_cast
Date: Mon, 11 May 2009 14:20:53 +0200


Il giorno 11/mag/09, alle ore 00:26, Benjamin Wolsey ha scritto:


Gnash may throw exceptions during function execution to signify certain
failures. They should be caught by one of the function classes so that
Gnash can continue. The swf_function class still catches a
std::exception, which means that any standard exception thrown will be
caught there.

yes,
i've seen it on may places.
And remember that i have added also

namespace boost
{

        void throw_exception(std::exception const & e)
        {
                std::abort();
        }
}

i don't think i've never reached this point but i could change teh function to see if somethng is catched

This is bad behaviour, as Gnash should only throw GnashExceptions if
they aren't expected to be caught immediately. Your bad_cast is most
likely an implementation bug on AmigaOS that's being masked by this
generic catch.

bu do you thing on Gnash or in some Amiga libraries?
Is hard to understand why i get those errors while on Linux doesn't
And since i receive them in the swf_function is har to understand which cast is wrong..

The catch in swf_function should be changed to catch only
GnashExceptions; any other std::exception that's thrown is unexpected
and isn't something that Gnash can deal with and continue. It would also
give you a better idea of what's going wrong. If it is a legitimate
throw of bad_cast, it should be caught at the point it's thrown.



there are two cases in tag_loaders.cpp where is present this catch

    IF_VERBOSE_MALFORMED_SWF(
        try {
            dynamic_cast<SWFMovieDefinition&>(m);
        }
        catch (std::bad_cast& e) {
            log_swferror(_("Nested DEFINESPRITE tags. Will add to "
                           "top-level DisplayObjects dictionary."));
        }
    );

but i don't see nothing related into swf_function. In the file tag_loaders.cpp there is an explicit cast while nothing is present into swf_function

Any idea where i can loot at?

Andrea




reply via email to

[Prev in Thread] Current Thread [Next in Thread]