diff options
| author | jacob1 <jfu614@gmail.com> | 2013-07-10 19:08:00 (GMT) |
|---|---|---|
| committer | jacob1 <jfu614@gmail.com> | 2013-07-10 19:08:00 (GMT) |
| commit | e7a3fd1c29bdc3f16fc6c04ce36f7268adb55092 (patch) | |
| tree | 487056cde1d3a0633a7c8fe2e1ae1dac02d5ad6d /src/gui/preview/PreviewModel.cpp | |
| parent | 4f6904b1ed06cf959544f37b936612c5d1a6a08f (diff) | |
| download | powder-e7a3fd1c29bdc3f16fc6c04ce36f7268adb55092.zip powder-e7a3fd1c29bdc3f16fc6c04ce36f7268adb55092.tar.gz | |
minor changes / fixes to last commit
Diffstat (limited to 'src/gui/preview/PreviewModel.cpp')
| -rw-r--r-- | src/gui/preview/PreviewModel.cpp | 115 |
1 files changed, 55 insertions, 60 deletions
diff --git a/src/gui/preview/PreviewModel.cpp b/src/gui/preview/PreviewModel.cpp index 04830d0..5903f77 100644 --- a/src/gui/preview/PreviewModel.cpp +++ b/src/gui/preview/PreviewModel.cpp @@ -23,7 +23,7 @@ void * PreviewModel::updateSaveInfoT(void * obj) { SaveInfo * tempSave = Client::Ref().GetSave(((threadInfo*)obj)->saveID, ((threadInfo*)obj)->saveDate); ((threadInfo*)obj)->threadFinished = true; - if (((threadInfo*)obj)->previewExited) + if (((threadInfo*)obj)->previewExited && tempSave) delete tempSave; return tempSave; } @@ -36,8 +36,10 @@ void * PreviewModel::updateSaveDataT(void * obj) ((threadInfo*)obj)->threadFinished = true; if (((threadInfo*)obj)->previewExited) { - delete tempSave; - free(tempData); + if (tempSave) + delete tempSave; + if (tempData) + free(tempData); } return tempSave; } @@ -46,7 +48,7 @@ void * PreviewModel::updateSaveCommentsT(void * obj) { std::vector<SaveComment*> * tempComments = Client::Ref().GetComments(((threadInfo*)obj)->saveID, (((threadInfo*)obj)->saveDate-1)*20, 20); //saveDate is used as commentsPageNumber ((threadInfo*)obj)->threadFinished = true; - if (((threadInfo*)obj)->previewExited) + if (((threadInfo*)obj)->previewExited && tempComments) { for(int i = 0; i < tempComments->size(); i++) delete tempComments->at(i); @@ -244,81 +246,74 @@ void PreviewModel::AddObserver(PreviewView * observer) void PreviewModel::Update() { - if (updateSaveDataInfo) + if (updateSaveDataInfo && updateSaveDataInfo->threadFinished) { - if (updateSaveDataInfo->threadFinished) - { - delete updateSaveDataInfo; - updateSaveDataInfo = NULL; - pthread_join(updateSaveDataThread, (void**)(&saveData)); + pthread_join(updateSaveDataThread, (void**)(&saveData)); + delete updateSaveDataInfo; + updateSaveDataInfo = NULL; - if (save) + if (save) + { + commentsTotal = save->Comments; + try { - commentsTotal = save->Comments; - try - { - save->SetGameSave(new GameSave((char*)saveData->data, saveData->length)); - } - catch(ParseException &e) - { - throw PreviewModelException("Save file corrupt or from newer version"); - } - notifySaveChanged(); - notifyCommentsPageChanged(); + save->SetGameSave(new GameSave((char*)saveData->data, saveData->length)); } + catch(ParseException &e) + { + throw PreviewModelException("Save file corrupt or from newer version"); + } + notifySaveChanged(); + notifyCommentsPageChanged(); } } - if (updateSaveInfoInfo) + if (updateSaveInfoInfo && updateSaveInfoInfo->threadFinished) { - if (updateSaveInfoInfo->threadFinished) + if (save) { - if (save) + delete save; + save = NULL; + } + pthread_join(updateSaveInfoThread, (void**)(&save)); + delete updateSaveInfoInfo; + updateSaveInfoInfo = NULL; + + if (save) + { + commentsTotal = save->Comments; + try { - delete save; - save = NULL; + save->SetGameSave(new GameSave((char*)saveData->data, saveData->length)); } - delete updateSaveInfoInfo; - updateSaveInfoInfo = NULL; - pthread_join(updateSaveInfoThread, (void**)(&save)); - if (save) + catch(ParseException &e) { - commentsTotal = save->Comments; - try - { - save->SetGameSave(new GameSave((char*)saveData->data, saveData->length)); - } - catch(ParseException &e) - { - throw PreviewModelException("Save file corrupt or from newer version"); - } - notifyCommentsPageChanged(); + throw PreviewModelException("Save file corrupt or from newer version"); } - notifySaveChanged(); - - if(!save) - throw PreviewModelException("Unable to load save"); + notifyCommentsPageChanged(); } + notifySaveChanged(); + + if(!save) + throw PreviewModelException("Unable to load save"); } - if (updateSaveCommentsInfo) + if (updateSaveCommentsInfo && updateSaveCommentsInfo->threadFinished) { - if (updateSaveCommentsInfo->threadFinished) + if(saveComments) { - if(saveComments) - { - for(int i = 0; i < saveComments->size(); i++) - delete saveComments->at(i); - saveComments->clear(); - delete saveComments; - saveComments = NULL; - } - commentsLoaded = true; - delete updateSaveCommentsInfo; - updateSaveCommentsInfo = NULL; - pthread_join(updateSaveCommentsThread, (void**)(&saveComments)); - notifySaveCommentsChanged(); + for(int i = 0; i < saveComments->size(); i++) + delete saveComments->at(i); + saveComments->clear(); + delete saveComments; + saveComments = NULL; } + + commentsLoaded = true; + pthread_join(updateSaveCommentsThread, (void**)(&saveComments)); + delete updateSaveCommentsInfo; + updateSaveCommentsInfo = NULL; + notifySaveCommentsChanged(); } } |
