To comment on the following update, log in, then open the issue:
http://www.openoffice.org/issues/show_bug.cgi?id=45267
                  Issue #:|45267
                  Summary:|Print dialog mis-mgmt ...
                Component:|framework
                  Version:|680m79
                 Platform:|All
                      URL:|
               OS/Version:|All
                   Status:|NEW
        Status whiteboard:|
                 Keywords:|
               Resolution:|
               Issue type:|PATCH
                 Priority:|P3
             Subcomponent:|code
              Assigned to:|tm
              Reported by:|mmeeks





------- Additional comments from [EMAIL PROTECTED] Thu Mar 17 02:24:09 -0800 
2005 -------
So - I believe we only see this problem due to our printer cancellation patch -
however, it fixes an underlying problem that exists nontheless.

Our crash is:


#0  0x40e77f13 in osl_incrementInterlockedCount () from ./libuno_sal.so.3
#1  0x40b7f1c0 in String::Assign () from ./libtl680li.so
#2  0x40230a4e in String::operator= (this=0xbfffdc20, [EMAIL PROTECTED]) at
string.hxx:541
#3  0x4085c06a in ImplPrnDlgUpdatePrinter (pPrinter=0x496ff588, 
pTempPrinter=0x0)
    at
/root/cvs/m79/ooo-build/build/src680-m79/svtools/source/dialogs/prnsetup.cxx:157
#4  0x4086346e in PrintDialog::DataChanged () from ./libsvt680li.so
#5  0x4033793c in Window::NotifyAllChilds () from ./libvcl680li.so
#6  0x4016f599 in Application::NotifyAllWindows () from ./libvcl680li.so
#7  0x403497a9 in ImplHandleSalSettings () from ./libvcl680li.so
#8  0x40349e95 in ImplWindowFrameProc () from ./libvcl680li.so
#9  0x4239c12b in SalDisplay::DispatchInternalEvent () from 
./libvclplug_gen680li.so
#10 0x41e8d852 in GtkXLib::userEventFn () from ./libvclplug_gtk680li.so
#11 0x422c9221 in g_idle_dispatch () from /opt/gnome/lib/libglib-2.0.so.0

The problem being that the mpPrinter member on the PrintDialog is invalid -
pointing to a freed printer. This patch fixes that:

--- sfx2/source/view/viewprn.cxx
+++ sfx2/source/view/viewprn.cxx
@@ -525,6 +524,8 @@
 
                        // forget new printer, it was taken over (as pPrinter) 
or deleted
                        pDlgPrinter = NULL;
+                       /* Now lets reset the Dialog printer, since its freed */
+                       pPrintDlg->SetPrinter (pPrinter);
 
                                        if ( SID_PRINTDOC == nId )
                                        {

Thanks to Srini for chasing this down so carefully.

---------------------------------------------------------------------
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]

Reply via email to