To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=115156
------- Additional comments from [email protected] Fri Oct 29 11:55:07 +0000 2010 ------- The backtrace shows that the path to the crash came through functions and macros with names including "DEBUG", "DBG", and "debug". This makes me suspect that I am getting this code because of my non-product build. (Hmm. Why, I wonder, did I not see anything from the call to __stl_debug_message() at _debug.c:303? Oh well.) Looking into DomainMapperTableHandler::endTableGetCellProperties(TableInfo&), defined at TableHandler.cxx:515, I see that line 521 allocates an empty container and then line 526 attempts to calculate end()-1. It is entirely reasonable that the code implementing this should complain. This reminds me that issue 109142 requests that fired assertions should abort the program. This issue provoked considerable discussion in the thread starting with <http://www.openoffice.org/servlets/ReadMsg?list=dev&msgNo=26561>. Still, I guess that sb was not asking for the program just to crash. Or maybe one of the scores of assertions raised before the crash actually explains the crash; I have not looked very far backward from the crash itself. If these comments sound plausible, then some ideas come to mind ... (*) The STL code could helpfully fire an assertion before aborting the program. This would allow a motivated user the attach a debugger and collect a backtrace upon seeing the problem for the first time. Is it sufficient to fire the assertion just before the _STLP_ABORT() that killed the program this time? Or should the STL code be sprinkled with assertions? I am not qualified to have an opinion. (*) Is it legitimate for the container allocated at DomainMapperTableHandler.cxx:521 to be empty? ( Line 526 assumes that the container has at least one element. Lines 535 and 559 appear to avoid that assumption, but that is the natural result of the usual idiom for iterating over the elements in a container; I do not see it as saying much about the code actually expecting an empty container. ) If the empty container is legitimate, then line 526 is simply wrong. If the empty container is not legitimate, then the program might reasonably complain and refuse to open the file, or complain and open the file anyway, or just open the file without complaint. BTW, if I save the document from OOo as a .docx file, I can open the saved file without a crash. However, OOo writes a file so different from the original that I cannot tell what is the important difference. --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
