I did find the lack of comments suspicious, maybe I did something
wrong?

I'm using Ubuntu 11.10, and the ppa from here:
http://ppa.launchpad.net/cafuego/inkscape/ubuntu/ 
(Inkscape 0.49~devel+11217+7~oneiric1 right now)

In the latest version, I'm still experiencing the same problem.
I don't have to do anything else, just drag out a new text box.

The part the crash message is referring to is this:

/usr/include/boost/optional/optional.hpp

    // Returns a pointer to the value if this is initialized, otherwise,
    // the behaviour is UNDEFINED
    // No-throw
    pointer_const_type operator->() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
    pointer_type       operator->()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }

The whole section is this:

    // Returns a reference to the value if this is initialized, otherwise,
    // the behaviour is UNDEFINED
    // No-throw
    reference_const_type get() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }
    reference_type       get()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_impl(); }

    // Returns a copy of the value if this is initialized, 'v' otherwise
    reference_const_type get_value_or ( reference_const_type v ) const { return this->is_initialized() ? get() : v ; }
    reference_type       get_value_or ( reference_type       v )       { return this->is_initialized() ? get() : v ; }

    // Returns a pointer to the value if this is initialized, otherwise,
    // the behaviour is UNDEFINED
    // No-throw
    pointer_const_type operator->() const { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }
    pointer_type       operator->()       { BOOST_ASSERT(this->is_initialized()) ; return this->get_ptr_impl() ; }

    // Returns a reference to the value if this is initialized, otherwise,
    // the behaviour is UNDEFINED
    // No-throw
    reference_const_type operator *() const { return this->get() ; }
    reference_type       operator *()       { return this->get() ; }

Anything in there that looks suspicious?


From: ~suv <suv-sf@...58...>
To: Valerie <valerie_vk@...36...>
Cc: "inkscape-devel@lists.sourceforge.net" <inkscape-devel@lists.sourceforge.net>
Sent: Wednesday, April 11, 2012 1:00 AM
Subject: crash when editing text in current trunk (was Re: [Inkscape-devel] New dynamics interface proposal)

On 02/04/2012 19:14, Valerie wrote:

> By the way, am I the only one for whom the text tool now crashes
> every time I try to start a new text box?
> (I can copy existing text boxes and change the content though)
>
> inkscape: /usr/include/boost/optional/optional.hpp:641: boost::optional<T>::pointer_type boost::optional<T>::operator->() [with T = Geom::Rect, boost::optional<T>::pointer_type = Geom::Rect*]: Assertion `this->is_initialized()' failed.
>
> (kind of annoying while making the mock-ups)

Failed reproduce it based on your description (creating new text objects
with current trunk works without crash on OS X 10.5.8 (32bit) and 10.7.2
(64bit)), but can trigger a crash consistently when editing text based
on the steps provided in bug #960980 [1]:

1) open 'Export bitmap…' and keep it open in the dock
2) create new (regular) text object
3) enter text on-canvas
4) use 'backspace' to delete all just entered text

-> crash when last remaining letter is deleted.


~suv


[1] Bug #960980 "Crash when removing the last character with an open
bitmap export dialog"
<https://bugs.launchpad.net/inkscape/+bug/960980>