Clone
ixen <ixen@copyhandler.com>
committed
on 17 Sep 17
Bugfix: Crash when changing read ahead and concurrency options (CH-336)
ch-1.40 + 2 more
src/libchengine/TTaskConfigTracker.cpp (+17 -1)
199 199         {
200 200                 if (strOption == TaskPropData<eTO_UseOnlyDefaultBuffer>::GetPropertyName())
201 201                         return eTO_UseOnlyDefaultBuffer;
202 202                 if (strOption == TaskPropData<eTO_DefaultBufferSize>::GetPropertyName())
203 203                         return eTO_DefaultBufferSize;
204 204                 if (strOption == TaskPropData<eTO_OneDiskBufferSize>::GetPropertyName())
205 205                         return eTO_OneDiskBufferSize;
206 206                 if (strOption == TaskPropData<eTO_TwoDisksBufferSize>::GetPropertyName())
207 207                         return eTO_TwoDisksBufferSize;
208 208                 if (strOption == TaskPropData<eTO_CDBufferSize>::GetPropertyName())
209 209                         return eTO_CDBufferSize;
210 210                 if (strOption == TaskPropData<eTO_LANBufferSize>::GetPropertyName())
211 211                         return eTO_LANBufferSize;
212 212                 if (strOption == TaskPropData<eTO_DisableBuffering>::GetPropertyName())
213 213                         return eTO_DisableBuffering;
214 214                 if (strOption == TaskPropData<eTO_DisableBufferingMinSize>::GetPropertyName())
215 215                         return eTO_DisableBufferingMinSize;
216 216                 if (strOption == TaskPropData<eTO_BufferQueueDepth>::GetPropertyName())
217 217                         return eTO_BufferQueueDepth;
218 218
  219                 if (strOption == TaskPropData<eTO_MaxReadAheadBuffers>::GetPropertyName())
  220                         return eTO_MaxReadAheadBuffers;
  221                 if (strOption == TaskPropData<eTO_MaxConcurrentReads>::GetPropertyName())
  222                         return eTO_MaxConcurrentReads;
  223
  224                 if (strOption == TaskPropData<eTO_MaxConcurrentWrites>::GetPropertyName())
  225                         return eTO_MaxConcurrentWrites;
  226 /*
  227                 if (strOption == TaskPropData<eTO_FeedbackGeneralFileError>::GetPropertyName())
  228                         return eTO_FeedbackGeneralFileError;
  229                 if (strOption == TaskPropData<eTO_FeedbackFileAlreadyExists>::GetPropertyName())
  230                         return eTO_FeedbackFileAlreadyExists;
  231                 if (strOption == TaskPropData<eTO_FeedbackNotEnoughSpace>::GetPropertyName())
  232                         return eTO_FeedbackNotEnoughSpace;
  233 */
  234
219 235                 if (strOption == TaskPropData<eTO_SetDestinationAttributes>::GetPropertyName())
220 236                         return eTO_SetDestinationAttributes;
221 237                 if (strOption == TaskPropData<eTO_ProtectReadOnlyFiles>::GetPropertyName())
222 238                         return eTO_ProtectReadOnlyFiles;
223 239                 if(strOption == TaskPropData<eTO_ScanDirectoriesBeforeBlocking>::GetPropertyName())
224 240                         return eTO_ScanDirectoriesBeforeBlocking;
225 241                 if(strOption == TaskPropData<eTO_FastMoveBeforeBlocking>::GetPropertyName())
226 242                         return eTO_FastMoveBeforeBlocking;
227 243                 if (strOption == TaskPropData<eTO_ThreadPriority>::GetPropertyName())
228 244                         return eTO_ThreadPriority;
229 245                 if (strOption == TaskPropData<eTO_DisablePriorityBoost>::GetPropertyName())
230 246                         return eTO_DisablePriorityBoost;
231 247                 if (strOption == TaskPropData<eTO_DeleteInSeparateSubTask>::GetPropertyName())
232 248                         return eTO_DeleteInSeparateSubTask;
233 249
234 250                 if (strOption == TaskPropData<eTO_CreateEmptyFiles>::GetPropertyName())
235 251                         return eTO_CreateEmptyFiles;
236 252                 if (strOption == TaskPropData<eTO_CreateDirectoriesRelativeToRoot>::GetPropertyName())
237 253                         return eTO_CreateDirectoriesRelativeToRoot;
238 254                 if (strOption == TaskPropData<eTO_IgnoreDirectories>::GetPropertyName())
239 255                         return eTO_IgnoreDirectories;
240 256                 if (strOption == TaskPropData<eTO_AlternateFilenameFormatString_First>::GetPropertyName())
241 257                         return eTO_AlternateFilenameFormatString_AfterFirst;
242 258                 if (strOption == TaskPropData<eTO_AlternateFilenameFormatString_AfterFirst>::GetPropertyName())
243 259                         return eTO_AlternateFilenameFormatString_First;
244 260
245 261                 BOOST_ASSERT(false);            // unhandled case
246 262                 throw TCoreException(eErr_UnhandledCase, L"Option name not supported", LOCATION);
247 263
248 264                 // add new elements before this one
249                   BOOST_STATIC_ASSERT(eTO_Last == eTO_AlternateFilenameFormatString_AfterFirst + 1);
  265                 static_assert(eTO_Last == 27, "Function not updated to accommodate new enum options");
250 266         }
251 267 }