[easytag/wip/clang-analyzer: 14/14] Refactor ET_Detect_Changes_Of_File_Tag()
- From: David King <davidk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [easytag/wip/clang-analyzer: 14/14] Refactor ET_Detect_Changes_Of_File_Tag()
- Date: Mon, 12 Aug 2013 15:46:23 +0000 (UTC)
commit cf46e0368bd53412643a80941b278fd60ffdb605
Author: David King <amigadave amigadave com>
Date: Mon Aug 12 16:43:06 2013 +0100
Refactor ET_Detect_Changes_Of_File_Tag()
Improve for loop for iterating pictures associated with the tag, and
avoid a potential NULL dereference found with the Clang static analyzer.
src/et_core.c | 11 ++++-------
1 files changed, 4 insertions(+), 7 deletions(-)
---
diff --git a/src/et_core.c b/src/et_core.c
index 57233f5..8e6f676 100644
--- a/src/et_core.c
+++ b/src/et_core.c
@@ -4252,10 +4252,8 @@ gboolean ET_Detect_Changes_Of_File_Tag (File_Tag *FileTag1, File_Tag *FileTag2)
if ( FileTag1->encoded_by && FileTag2->encoded_by &&
g_utf8_collate(FileTag1->encoded_by,FileTag2->encoded_by)!=0 ) return TRUE;
/* Picture */
- pic1 = FileTag1->picture;
- pic2 = FileTag2->picture;
-
- for(;;)
+ for (pic1 = FileTag1->picture, pic2 = FileTag2->picture; ;
+ pic1 = pic1->next, pic2 = pic2->next)
{
if( (pic1 && !pic2) || (!pic1 && pic2) )
return TRUE;
@@ -4264,6 +4262,8 @@ gboolean ET_Detect_Changes_Of_File_Tag (File_Tag *FileTag1, File_Tag *FileTag2)
//if (!pic1->data || !pic2->data)
// break; // => no changes
+ if (!pic1->data && !pic2->data)
+ return FALSE;
if (pic1->data && !pic2->data)
return TRUE;
if (!pic1->data && pic2->data)
@@ -4282,9 +4282,6 @@ gboolean ET_Detect_Changes_Of_File_Tag (File_Tag *FileTag1, File_Tag *FileTag2)
if (pic1->description && pic2->description
&& g_utf8_collate(pic1->description, pic2->description)!=0 )
return TRUE;
-
- pic1 = pic1->next;
- pic2 = pic2->next;
}
return FALSE; /* No changes */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]