diff --git a/examples/cat.c b/examples/cat.c index 0a4dba9e..cc1403d8 100644 --- a/examples/cat.c +++ b/examples/cat.c @@ -1,11 +1,8 @@ /* GIMP RGBA C-Source image dump (cat.c) */ -const struct { - unsigned int width; - unsigned int height; - unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */ - unsigned char pixel_data[128 * 128 * 4 + 1]; -} cat_tex = { +#include "cat.h" + +const struct gimp_texture cat_tex = { 128, 128, 4, "[\227\017\377L\206\001\377M\212\002\377T\227\011\377V\231\010\377W\224\001\377[\222" "\001\377T\212\001\377P\211\001\377M\203\001\377P\212\001\377Q\217\001\377K\210\001\377" diff --git a/examples/cat.h b/examples/cat.h index 6db307fd..46dc50f6 100644 --- a/examples/cat.h +++ b/examples/cat.h @@ -5,7 +5,7 @@ struct gimp_texture { unsigned int width; unsigned int height; unsigned int bytes_per_pixel; /* 2:RGB16, 3:RGB, 4:RGBA */ - unsigned char pixel_data[128 * 128 * 3 + 1]; + unsigned char pixel_data[128 * 128 * 4 + 1]; }; extern const struct gimp_texture cat_tex; diff --git a/examples/rotation.c b/examples/rotation.c index 1b75ccaf..36e95f50 100644 --- a/examples/rotation.c +++ b/examples/rotation.c @@ -192,7 +192,7 @@ static void parse_args(int argc, char *argv[], struct wl_list *config) { } int main(int argc, char *argv[]) { - struct sample_state state = { 0 }; + struct sample_state state = {0}; wl_list_init(&state.config); parse_args(argc, argv, &state.config); diff --git a/include/render/gles2.h b/include/render/gles2.h index 7b835209..e57d40f4 100644 --- a/include/render/gles2.h +++ b/include/render/gles2.h @@ -5,6 +5,7 @@ #include #include #include +#include struct pixel_format { uint32_t wl_format; @@ -41,7 +42,7 @@ extern const GLchar fragment_src_rgbx[]; bool _gles2_flush_errors(const char *file, int line); #define gles2_flush_errors(...) \ - _gles2_flush_errors(__FILE__ + strlen(WLR_SRC_DIR) + 1, __LINE__) + _gles2_flush_errors(_strip_path(__FILE__), __LINE__) #define GL_CALL(func) func; gles2_flush_errors() diff --git a/session/direct-ipc.c b/session/direct-ipc.c index fbbde02a..885662e0 100644 --- a/session/direct-ipc.c +++ b/session/direct-ipc.c @@ -1,6 +1,8 @@ #define _POSIX_C_SOURCE 200809L #include #include +#include +#include #include #include #include @@ -62,7 +64,7 @@ static void send_msg(int sock, int fd, void *buf, size_t buf_len) { .cmsg_type = SCM_RIGHTS, .cmsg_len = CMSG_LEN(sizeof(fd)), }; - *(int *)CMSG_DATA(cmsg) = fd; + memcpy(CMSG_DATA(cmsg), &fd, sizeof(fd)); } ssize_t ret; @@ -93,7 +95,11 @@ static ssize_t recv_msg(int sock, int *fd_out, void *buf, size_t buf_len) { if (fd_out) { struct cmsghdr *cmsg = CMSG_FIRSTHDR(&msghdr); - *fd_out = cmsg ? *(int *)CMSG_DATA(cmsg) : -1; + if (cmsg) { + memcpy(fd_out, CMSG_DATA(cmsg), sizeof(*fd_out)); + } else { + *fd_out = -1; + } } return ret;