summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2022-03-24 22:01:28 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2022-03-24 22:01:28 +0000
commite55a0a37099caec739bcddd2f1a459a322bbec0c (patch)
treeef78ce3048cbe679986cbe138cabfef89d1f114b
parentc5096a31de6493c9d88d72bc339e50a45afd052d (diff)
downloadlibnsgif-e55a0a37099caec739bcddd2f1a459a322bbec0c.tar.gz
libnsgif-e55a0a37099caec739bcddd2f1a459a322bbec0c.tar.bz2
API: Use uint32_t for background colour info member.
This avoids increasing alignment of pointer type where we handle the background fill.
-rw-r--r--include/nsgif.h2
-rw-r--r--src/gif.c24
2 files changed, 4 insertions, 22 deletions
diff --git a/include/nsgif.h b/include/nsgif.h
index 655486b..0ee00e8 100644
--- a/include/nsgif.h
+++ b/include/nsgif.h
@@ -346,7 +346,7 @@ typedef struct nsgif_info {
/** number of animation loops so far */
int loop_count;
/** background colour in same pixel format as \ref nsgif_bitmap_t. */
- uint8_t background[4];
+ uint32_t background;
} nsgif_info_t;
/**
diff --git a/src/gif.c b/src/gif.c
index b37b517..4966677 100644
--- a/src/gif.c
+++ b/src/gif.c
@@ -591,18 +591,6 @@ static inline nsgif_error nsgif__decode(
}
/**
- * Helper to assign a pixel representation from a gif background colour array.
- *
- * \param[in] bg The background colour to read from.
- * \param[out] px The pixel colour to write.
- */
-static inline void nsgif__gif_bg_to_px(
- const uint8_t bg[4], uint32_t *px)
-{
- *px = *(uint32_t *)bg;
-}
-
-/**
* Helper to assign a gif background colour array from a pixel representation.
*
* \param[in] px The pixel colour to read from.
@@ -656,9 +644,7 @@ static void nsgif__restore_bg(
uint32_t *scanline = bitmap + offset_x +
(offset_y + y) * gif->info.width;
for (uint32_t x = 0; x < width; x++) {
- nsgif__gif_bg_to_px(
- gif->info.background,
- &scanline[x]);
+ scanline[x] = gif->info.background;
}
}
}
@@ -1662,13 +1648,9 @@ nsgif_error nsgif_data_scan(
if (gif->global_colours &&
gif->bg_index < gif->colour_table_size) {
size_t bg_idx = gif->bg_index;
- nsgif__gif_px_to_bg(
- &gif->global_colour_table[bg_idx],
- gif->info.background);
+ gif->info.background = gif->global_colour_table[bg_idx];
} else {
- nsgif__gif_px_to_bg(
- &gif->global_colour_table[0],
- gif->info.background);
+ gif->info.background = gif->global_colour_table[0];
}
}