Browse Source

Pass pointer and not copy of struct to avoid job output crash

pcb_db
Marek Roszko 10 months ago
parent
commit
dcd80ee925
  1. 4
      common/jobs/jobset.cpp
  2. 2
      common/jobs/jobset.h
  3. 4
      kicad/dialogs/panel_jobs.cpp

4
common/jobs/jobset.cpp

@ -155,12 +155,12 @@ void JOBSET::AddNewJob( wxString aType, JOB* aJob )
}
JOBSET_OUTPUT JOBSET::AddNewJobOutput( JOBSET_OUTPUT_TYPE aType )
JOBSET_OUTPUT* JOBSET::AddNewJobOutput( JOBSET_OUTPUT_TYPE aType )
{
m_outputs.emplace_back( KIID().AsString(), aType);
SetDirty();
return m_outputs.back();
return &m_outputs.back();
}

2
common/jobs/jobset.h

@ -94,7 +94,7 @@ public:
wxString GetFullName() const { return m_fileNameWithoutPath; }
void AddNewJob( wxString aType, JOB* aJob );
JOBSET_OUTPUT AddNewJobOutput( JOBSET_OUTPUT_TYPE aType );
JOBSET_OUTPUT* AddNewJobOutput( JOBSET_OUTPUT_TYPE aType );
void RemoveOutput( JOBSET_OUTPUT* aOutput );
void MoveJobUp( size_t aJobIdx );

4
kicad/dialogs/panel_jobs.cpp

@ -669,10 +669,10 @@ void PANEL_JOBS::OnAddOutputClick( wxCommandEvent& aEvent )
{
if( wxGetTranslation( jobType.second.name ) == selectedString )
{
JOBSET_OUTPUT output = m_jobsFile->AddNewJobOutput( jobType.first );
JOBSET_OUTPUT* output = m_jobsFile->AddNewJobOutput( jobType.first );
Freeze();
addJobOutputPanel( &output );
addJobOutputPanel( output );
m_buttonRunAllOutputs->Enable( !m_jobsFile->GetOutputs().empty() );
Thaw();
}

Loading…
Cancel
Save