https://bugs.freedesktop.org/show_bug.cgi?id=67579

--- Comment #1 from Lionel Elie Mamane <lio...@mamane.lu> ---
So, using gdb I skipped that assert *once* and then ran again in gdb.

Now that assert succeeds because m_Parent->m_aJobData.m_nPDFDevice==1.

However, when I dismiss the properties page (click "OK"), I ultimately get into
this code:

padmin::RTSDialog::ClickButton



        if( m_pDevicePage )
        {
            m_aJobData.m_nColorDepth    = m_pDevicePage->getDepth();
            m_aJobData.m_nColorDevice   = m_pDevicePage->getColorDevice();
            m_aJobData.m_nPSLevel       = m_pDevicePage->getLevel();
            m_aJobData.m_nPDFDevice     = m_pDevicePage->getPDFDevice();
        }


This sets m_aJobData.m_nPDFDevice to 0, but well after the assert. So in a
nutshell, I cannot reproduce anymore.


Let's look at the .odt file... settings.xml contains:


<office:document-settings>
  <office:settings>
        <config:config-item-set config:name="ooo:configuration-settings">
            <config:config-item config:name="PrinterSetup"
config:type="base64Binary">

And (decoded), this contains:

 pslevel=0
 pdfdevice=0

Aha. So let's try to restart the LibreOffice process on the same file...


More analysis / notes:

m_pParent->m_aJobData seems to be essentially constructed in
PspSalInfoPrinter::Setup (file vcl/generic/print/genprnpsp.cxx).

In this case, since pJobSetup->mpDriverData is not NULL, we go into SetData(
~0, pJobSetup ), which calls JobData::constructFromStreamBuffer.

JobData::constructFromStreamBuffer *does* set m_nPDFDevice to 1.

SetData then goes on to create a new StreamBuffer from the information, and
returns to PspSalInfoPrinter::Setup, which calls ...
JobData::constructFromStreamBuffer again on the StreamBuffer with same contents
as the one that SetData worked on, which thus *also* sets m_nPDFDevice to 1.

So we enter Sal_SetupPrinterDriver (file padmin/source/prtsetup.cxx) with a
rJobData that has m_nPDFDevice==1, which creates a padmin::RTSDialog passing it
the same rJobData; that class copies it into its m_aJobData.

-- 
You are receiving this mail because:
You are the assignee for the bug.
_______________________________________________
Libreoffice-bugs mailing list
Libreoffice-bugs@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-bugs

Reply via email to