1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
https://bugs.gentoo.org/860057
diff --git a/src/draw/draw_image.c b/src/draw/draw_image.c
index 531101a..f225164 100644
--- a/src/draw/draw_image.c
+++ b/src/draw/draw_image.c
@@ -21,6 +21,8 @@ $*/
* AppDraw: イメージ関連
*****************************************/
+#include <string.h>
+
#include <mlk_gui.h>
#include <mlk_widget_def.h>
#include <mlk_popup_progress.h>
@@ -798,7 +800,7 @@ mlkerr drawImage_blendImageReal_alpha(AppDraw *p,int dstbits,mPopupProgress *pro
{
//8bit は常に 8bit
- *((uint32_t *)pd) = *((uint32_t *)&colres);
+ memcpy(&pd, &colres, sizeof(uint32_t));
pd += 4;
}
diff --git a/src/image/tileimage_imagefile.c b/src/image/tileimage_imagefile.c
index e05e633..9b2d3ef 100644
--- a/src/image/tileimage_imagefile.c
+++ b/src/image/tileimage_imagefile.c
@@ -165,7 +165,7 @@ static void _loadimgbuf_convert_8to16(uint8_t **ppbuf,int width,int height,mlkbo
c[2] = tbl[pd8[2]];
c[3] = tbl[(ignore_alpha)? 255: pd8[3]];
- *((uint64_t *)pd16) = *((uint64_t *)c);
+ memcpy(&pd16, c, sizeof(uint64_t));
}
}
diff --git a/src/other/colorvalue.c b/src/other/colorvalue.c
index 74f8ebe..67a255c 100644
--- a/src/other/colorvalue.c
+++ b/src/other/colorvalue.c
@@ -22,6 +22,7 @@ $*/
*****************************************/
#include <stdlib.h>
+#include <string.h>
#include <mlk_gui.h>
#include <mlk_pixbuf.h>
@@ -156,8 +157,10 @@ uint32_t RGBA16_to_32bit(const RGBA16 *p)
uint64_t RGB16_to_64bit_buf(const RGB16 *p)
{
uint16_t buf[4] = {p->r, p->g, p->b, 0};
+ uint64_t ret;
+ memcpy(&ret, buf, sizeof(uint64_t));
- return *((uint64_t *)buf);
+ return ret;
}
//-------- 32bit RGB から変換
|