Bug 91569 - CLASH: Formula Editor: when press edit button on symbols dialog.
Summary: CLASH: Formula Editor: when press edit button on symbols dialog.
Status: VERIFIED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Formula Editor (show other bugs)
Version:
(earliest affected)
5.0.0.0.beta1
Hardware: All All
: medium critical
Assignee: Not Assigned
URL:
Whiteboard:
Keywords: haveBacktrace, regression
Depends on:
Blocks:
 
Reported: 2015-05-24 07:45 UTC by sawakaze
Modified: 2015-05-28 05:32 UTC (History)
4 users (show)

See Also:
Crash report or crash signature:


Attachments
Attachement is Edit button on "Symbols Dialog " (203.36 KB, image/jpeg)
2015-05-24 07:45 UTC, sawakaze
Details
WinDbg backtrace (16.92 KB, text/plain)
2015-05-24 07:58 UTC, pierre-yves samyn
Details

Note You need to log in before you can comment on or make changes to this bug.
Description sawakaze 2015-05-24 07:45:05 UTC
Created attachment 115951 [details]
Attachement is Edit button on "Symbols Dialog "

1. Open symbols dialog (Large "omega" icon) 
2. Press edit button (see attachement)
--> Formula Editor is clashed

env..

OS      : Linux
Desktop : MATE
LANG    : JA
Comment 1 pierre-yves samyn 2015-05-24 07:58:15 UTC
Hi

I reproduce on windows 7/64 & Version: 5.0.0.0.beta1
Build ID: 0a16c3dda4150008d9be6f24cbd15ac198d116d3
Locale: fr-FR (fr_FR)

Steps to reproduce
1. File> New> Formula
2. Tools> Catalog
3. Click Edit

Crash

I set status to NEW & join a windbg backtrace

Regards
Pierre-Yves
Comment 2 pierre-yves samyn 2015-05-24 07:58:43 UTC
Created attachment 115955 [details]
WinDbg backtrace
Comment 3 Julien Nabet 2015-05-24 15:57:57 UTC
soffice.bin: /home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/smart_ptr/intrusive_ptr.hpp:162: T* boost::intrusive_ptr<T>::operator->() const [with T = FontCharMap]: Assertion `px != 0' failed.

Program received signal SIGABRT, Aborted.
0x00002aaaab325107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56	../nptl/sysdeps/unix/sysv/linux/raise.c: Aucun fichier ou dossier de ce type.
(gdb) bt
#0  0x00002aaaab325107 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00002aaaab3264e8 in __GI_abort () at abort.c:89
#2  0x00002aaaab31e226 in __assert_fail_base (fmt=0x2aaaab454ce8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x2aaace8f938d "px != 0", file=file@entry=0x2aaace8f9320 "/home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/smart_ptr/intrusive_ptr.hpp", line=line@entry=162, function=function@entry=0x2aaace8f9dc0 <boost::intrusive_ptr<FontCharMap>::operator->() const::__PRETTY_FUNCTION__> "T* boost::intrusive_ptr<T>::operator->() const [with T = FontCharMap]")
    at assert.c:92
#3  0x00002aaaab31e2d2 in __GI___assert_fail (assertion=0x2aaace8f938d "px != 0", file=0x2aaace8f9320 "/home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/smart_ptr/intrusive_ptr.hpp", line=162, function=0x2aaace8f9dc0 <boost::intrusive_ptr<FontCharMap>::operator->() const::__PRETTY_FUNCTION__> "T* boost::intrusive_ptr<T>::operator->() const [with T = FontCharMap]") at assert.c:101
#4  0x00002aaace670e79 in boost::intrusive_ptr<FontCharMap>::operator->() const (this=0x2ebee78)
    at /home/julien/compile-libreoffice/libreoffice/workdir/UnpackedTarball/boost/boost/smart_ptr/intrusive_ptr.hpp:162
#5  0x00002aaace669d6e in SvxShowCharSet::SelectCharacter(unsigned int, bool) (this=0x2ebeb60, cNew=913, bFocus=false)
    at /home/julien/compile-libreoffice/libreoffice/svx/source/dialog/charmap.cxx:651
#6  0x00002aaacc67c146 in SmSymDefineDialog::SelectChar(unsigned short) (this=0x2dbcc30, cChar=913)
    at /home/julien/compile-libreoffice/libreoffice/starmath/source/dialog.cxx:2439
#7  0x00002aaacc67b652 in SmSymDefineDialog::SelectSymbol(ComboBox&, rtl::OUString const&, bool) (this=0x2dbcc30, rComboBox=..., rSymbolName="ALPHA", bDeleteText=false)
    at /home/julien/compile-libreoffice/libreoffice/starmath/source/dialog.cxx:2310
Comment 4 Julien Nabet 2015-05-24 16:46:36 UTC
The problem is there:
#1  0x00002aaace669d6e in SvxShowCharSet::SelectCharacter (this=0x2eba5c0, cNew=913, bFocus=false)
    at /home/julien/compile-libreoffice/libreoffice/svx/source/dialog/charmap.cxx:651
651	    sal_UCS4 cNext = mpFontCharMap->GetNextChar( (cNew > 0) ? cNew - 1 : cNew );
(gdb) p mpFontCharMap
$2 = {px = 0x0}

mpFontCharMap is null.

RecalculateFont method, which initializes mpFontCharMap, isn't called whereas mbRecalculateFont is set to "true" at the init.

But then I'm a bit stuck.

BTW: regression since it works in LO Debian package 4.4.3

Tomaz: noticing this commit http://cgit.freedesktop.org/libreoffice/core/commit/?id=613ead6d876508b0da32a4511b140b7f2abdac73, thought you might have an idea, one for you?
Comment 6 Michael Meeks 2015-05-27 19:14:43 UTC
Would be great to confirm the fix if possible; thanks Tomaz ! =)
Comment 7 Julien Nabet 2015-05-28 05:31:59 UTC
On pc Debian x86-64 with master sources udpated yesterday, be01d68420086fc36ecf26b5f597ba7c6b29b369, I don't reproduce this.

Thank you for the fix! :-)