[geany/geany] 6ef41c: Various cleanups in the merge algorithm

Jiří Techet git-noreply at xxxxx
Sat Nov 8 18:57:58 UTC 2014


Branch:      refs/heads/master
Author:      Jiří Techet <techet at gmail.com>
Committer:   Jiří Techet <techet at gmail.com>
Date:        Wed, 22 Oct 2014 14:14:59 UTC
Commit:      6ef41c65a9504f54bab17253359edaafb9d771fa
             https://github.com/geany/geany/commit/6ef41c65a9504f54bab17253359edaafb9d771fa

Log Message:
-----------
Various cleanups in the merge algorithm

Remove the continue statement and use if/else instead. Initialize the
val1 variable only with the value used for the chosen path (normal/fast).


Modified Paths:
--------------
    tagmanager/src/tm_tag.c

Modified: tagmanager/src/tm_tag.c
44 lines changed, 23 insertions(+), 21 deletions(-)
===================================================================
@@ -848,8 +848,7 @@ static GPtrArray *merge(GPtrArray *big_array, GPtrArray *small_array) {
 	
 	while (i1 < big_array->len && i2 < small_array->len)
 	{
-		gint cmpval;
-		gpointer val1 = big_array->pdata[i1];
+		gpointer val1;
 		gpointer val2 = small_array->pdata[i2];
 
 		if (step > 4)  /* fast path start */
@@ -871,36 +870,39 @@ static GPtrArray *merge(GPtrArray *big_array, GPtrArray *small_array) {
 					g_ptr_array_add(res_array, val1);
 					i1++;
 				}
-				continue;
 			}
 			else 
 			{
 				/* lower the step and try again */
 				step /= 2;
-				continue;
 			}
 		}  /* fast path end */
-		
-#ifdef TM_DEBUG
-		cmpnum++;
-#endif
-		cmpval = tm_tag_compare(&val1, &val2);
-		if (cmpval < 0)
-		{
-			g_ptr_array_add(res_array, val1);
-			i1++;
-		}
 		else
 		{
-			g_ptr_array_add(res_array, val2);
-			i2++;
-			/* value from small_array gets merged - reset the step size */
-			step = initial_step;
-			if (cmpval == 0)
-				i1++;  /* remove the duplicate, keep just the newly merged value */
+			gint cmpval;
+			
+#ifdef TM_DEBUG
+			cmpnum++;
+#endif
+			val1 = big_array->pdata[i1];
+			cmpval = tm_tag_compare(&val1, &val2);
+			if (cmpval < 0)
+			{
+				g_ptr_array_add(res_array, val1);
+				i1++;
+			}
+			else
+			{
+				g_ptr_array_add(res_array, val2);
+				i2++;
+				/* value from small_array gets merged - reset the step size */
+				step = initial_step;
+				if (cmpval == 0)
+					i1++;  /* remove the duplicate, keep just the newly merged value */
+			}
 		}
 	}
-	
+
 	/* end of one of the arrays reached - copy the rest from the other array */
 	while (i1 < big_array->len)
 		g_ptr_array_add(res_array, big_array->pdata[i1++]);



--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).


More information about the Commits mailing list