]> granicus.if.org Git - libass/commitdiff
shift_bitmap: do not rely on compiler optimizations
authorGrigori Goronzy <greg@blackbox>
Mon, 29 Jun 2009 00:46:45 +0000 (02:46 +0200)
committerGrigori Goronzy <greg@blackbox>
Mon, 29 Jun 2009 00:46:45 +0000 (02:46 +0200)
Do not rely on the compiler for optimizing a division into a shift.

libass/ass_bitmap.c

index d7573ef7bd2c9409ae3b977ecb91c1011ab64cd2..16d2b351e4d0767b3b8dc6b4ba51c3e39f17b0b5 100644 (file)
@@ -285,7 +285,7 @@ static void shift_bitmap(unsigned char *buf, int w, int h, int shift_x,
     if (shift_x > 0) {
         for (y = 0; y < h; y++) {
             for (x = w - 1; x > 0; x--) {
-                b = (buf[x + y * w - 1] * shift_x) / 64;
+                b = (buf[x + y * w - 1] * shift_x) >> 6;
                 buf[x + y * w - 1] -= b;
                 buf[x + y * w] += b;
             }
@@ -294,7 +294,7 @@ static void shift_bitmap(unsigned char *buf, int w, int h, int shift_x,
         shift_x = -shift_x;
         for (y = 0; y < h; y++) {
             for (x = 0; x < w - 1; x++) {
-                b = (buf[x + y * w + 1] * shift_x) / 64;
+                b = (buf[x + y * w + 1] * shift_x) >> 6;
                 buf[x + y * w + 1] -= b;
                 buf[x + y * w] += b;
             }
@@ -305,7 +305,7 @@ static void shift_bitmap(unsigned char *buf, int w, int h, int shift_x,
     if (shift_y > 0) {
         for (x = 0; x < w; x++) {
             for (y = h - 1; y > 0; y--) {
-                b = (buf[x + (y - 1) * w] * shift_y) / 64;
+                b = (buf[x + (y - 1) * w] * shift_y) >> 6;
                 buf[x + (y - 1) * w] -= b;
                 buf[x + y * w] += b;
             }
@@ -314,7 +314,7 @@ static void shift_bitmap(unsigned char *buf, int w, int h, int shift_x,
         shift_y = -shift_y;
         for (x = 0; x < w; x++) {
             for (y = 0; y < h - 1; y++) {
-                b = (buf[x + (y + 1) * w] * shift_y) / 64;
+                b = (buf[x + (y + 1) * w] * shift_y) >> 6;
                 buf[x + (y + 1) * w] -= b;
                 buf[x + y * w] += b;
             }