Index: src/libchcore/TSubTaskArray.cpp =================================================================== diff -u -N -r213cc1a2b3530ea7cb31fd0dac258df23bcc3416 -ra3d1e4c03280ece94af75d9aef32a65266cf8050 --- src/libchcore/TSubTaskArray.cpp (.../TSubTaskArray.cpp) (revision 213cc1a2b3530ea7cb31fd0dac258df23bcc3416) +++ src/libchcore/TSubTaskArray.cpp (.../TSubTaskArray.cpp) (revision a3d1e4c03280ece94af75d9aef32a65266cf8050) @@ -183,10 +183,9 @@ ISerializerContainerPtr spContainer = spSerializer->GetContainer(_T("subtasks_info")); InitSubtasksInfoColumns(spContainer); - ISerializerRowDataPtr spRow = spContainer->GetRow(0, bAdded); + ISerializerRowData& rRow = spContainer->GetRow(0, bAdded); - *spRow - % TRowData(_T("operation"), m_eOperationType.Get()); + rRow.SetValue(_T("operation"), m_eOperationType.Get()); } /////////////////////////////////////////////////////////////////////// @@ -195,8 +194,6 @@ InitSubtasksColumns(spContainer); - ISerializerRowDataPtr spRow; - // base data long lCurrentIndex = m_lSubOperationIndex.load(boost::memory_order_acquire); @@ -210,11 +207,10 @@ { const std::pair& rCurrentSubTask = m_vSubTasks[stSubOperationIndex]; - spRow = spContainer->GetRow(stSubOperationIndex, bAdded); - *spRow - % TRowData(_T("type"), rCurrentSubTask.first->GetSubOperationType()) - % TRowData(_T("is_current"), false) - % TRowData(_T("is_estimation"), rCurrentSubTask.second); + ISerializerRowData& rRow = spContainer->GetRow(stSubOperationIndex, bAdded); + rRow.SetValue(_T("type"), rCurrentSubTask.first->GetSubOperationType()); + rRow.SetValue(_T("is_current"), false); + rRow.SetValue(_T("is_estimation"), rCurrentSubTask.second); } } @@ -224,15 +220,15 @@ // mark subtask at current index as "current"; don't do that if we just finished. if(boost::numeric_cast(lCurrentIndex) != m_vSubTasks.size()) { - spRow = spContainer->GetRow(lCurrentIndex, false); - *spRow % TRowData(_T("is_current"), true); + ISerializerRowData& rRow = spContainer->GetRow(lCurrentIndex, false); + rRow.SetValue(_T("is_current"), true); } // unmark the old "current" subtask if(m_lLastStoredIndex != -1) { - spRow = spContainer->GetRow(m_lLastStoredIndex, false); - *spRow % TRowData(_T("is_current"), false); + ISerializerRowData& rRow = spContainer->GetRow(m_lLastStoredIndex, false); + rRow.SetValue(_T("is_current"), false); } }