bzip2: small simplification in mainSort()
authorDenys Vlasenko <vda.linux@googlemail.com>
Sat, 3 Feb 2018 17:11:08 +0000 (18:11 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 3 Feb 2018 17:11:08 +0000 (18:11 +0100)
function                                             old     new   delta
mainSort                                            1127    1118      -9

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
archival/libarchive/bz/blocksort.c

index fe2b2c2f24a849be3ef84531c911713a0b95984c..2e08f2f9dbaf19a8bbdb1cbc49a17ec303a74221 100644 (file)
@@ -833,13 +833,13 @@ void mainSort(EState* state,
                        /*h = h / 3;*/
                        h = (h * 171) >> 9; /* bbox: fast h/3 */
                        for (i = h; i <= 255; i++) {
-                               unsigned vv;
+                               unsigned vv, jh;
                                vv = runningOrder[i]; /* uint8[] */
                                j = i;
-                               while (BIGFREQ(runningOrder[j-h]) > BIGFREQ(vv)) {
-                                       runningOrder[j] = runningOrder[j-h];
-                                       j = j - h;
-                                       if (j <= (h - 1))
+                               while (jh = j - h, BIGFREQ(runningOrder[jh]) > BIGFREQ(vv)) {
+                                       runningOrder[j] = runningOrder[jh];
+                                       j = jh;
+                                       if (j < h)
                                                break;
                                }
                                runningOrder[j] = vv;