Commit Diff


commit - a8acad7d8eeb9aca78302e45eba5eb2211e6f291
commit + 611e8e319eae000b4d691f6c188af95e4de294a7
blob - 14aa4357200fc7ebcefeb1306ac93ca9c8d7fb54
blob + c4297f6ad6a288e1c8b13eba926caea877ea2bf9
--- lib/pack_create.c
+++ lib/pack_create.c
@@ -162,8 +162,10 @@ delta_order_cmp(const void *pa, const void *pb)
 	cmp = strcmp(a->path, b->path);
 	if (cmp != 0)
 		return cmp;
-	if (a->mtime != b->mtime)
-		return a->mtime - b->mtime;
+	if (a->mtime < b->mtime)
+		return -1;
+	if (a->mtime > b->mtime)
+		return 1;
 	return got_object_id_cmp(&a->id, &b->id);
 }
 
@@ -1514,13 +1516,21 @@ write_order_cmp(const void *pa, const void *pb)
 	b = *(struct got_pack_meta **)pb;
 	ahd = (a->head == NULL) ? a : a->head;
 	bhd = (b->head == NULL) ? b : b->head;
-	if (ahd->mtime != bhd->mtime)
-		return bhd->mtime - ahd->mtime;
-	if (ahd != bhd)
-		return (uintptr_t)bhd - (uintptr_t)ahd;
+	if (bhd->mtime < ahd->mtime)
+		return -1;
+	if (bhd->mtime > ahd->mtime)
+		return 1;
+	if (bhd < ahd)
+		return -1;
+	if (bhd > ahd)
+		return 1;
 	if (a->nchain != b->nchain)
 		return a->nchain - b->nchain;
-	return a->mtime - b->mtime;
+	if (a->mtime < b->mtime)
+		return -1;
+	if (a->mtime > b->mtime)
+		return 1;
+	return got_object_id_cmp(&a->id, &b->id);
 }
 
 static int