diff --git a/driver.h b/driver.h index b5a9961e4a..ceb4b607c9 100644 --- a/driver.h +++ b/driver.h @@ -299,7 +299,7 @@ typedef struct driver const video_poke_interface_t *video_poke; /* Last message given to the video driver */ - const char *current_msg; + char current_msg[PATH_MAX_LENGTH]; } driver_t; /** diff --git a/libretro_version_1.c b/libretro_version_1.c index 8e1dc136ba..843c970fa1 100644 --- a/libretro_version_1.c +++ b/libretro_version_1.c @@ -114,7 +114,10 @@ static void video_frame(const void *data, unsigned width, msg = rarch_main_msg_queue_pull(); - driver->current_msg = msg; + *driver->current_msg = 0; + + if (msg) + strlcpy(driver->current_msg, msg, sizeof(driver->current_msg)); if (video_driver_frame_filter(data, width, height, pitch, &output_width, &output_height, &output_pitch)) @@ -125,7 +128,7 @@ static void video_frame(const void *data, unsigned width, pitch = output_pitch; } - if (!video_driver_frame(data, width, height, pitch, msg)) + if (!video_driver_frame(data, width, height, pitch, driver->current_msg)) driver->video_active = false; }