[Scummvm-git-logs] scummvm master -> 545569a73c2638a18c83a9d7c59b13b737404e34

spleen1981 noreply at scummvm.org
Mon May 4 23:29:22 UTC 2026


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://api.github.com/repos/scummvm/scummvm .

Summary:
b5f964bb28 LIBRETRO: add missing retro_log_cb guards
180353ed6a LIBRETRO: add _domain to confman.get
545569a73c GRAPHICS: MACGUI: early return on font generation failed


Commit: b5f964bb28f4a61703b68245d6146cc220efea7b
    https://github.com/scummvm/scummvm/commit/b5f964bb28f4a61703b68245d6146cc220efea7b
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2026-05-05T01:28:19+02:00

Commit Message:
LIBRETRO: add missing retro_log_cb guards

Changed paths:
    backends/platform/libretro/src/libretro-options-widget.cpp
    backends/platform/libretro/src/libretro-os-utils.cpp


diff --git a/backends/platform/libretro/src/libretro-options-widget.cpp b/backends/platform/libretro/src/libretro-options-widget.cpp
index bb9880c406b..d12a815ecb8 100644
--- a/backends/platform/libretro/src/libretro-options-widget.cpp
+++ b/backends/platform/libretro/src/libretro-options-widget.cpp
@@ -118,13 +118,15 @@ bool LibretroOptionsWidget::cleanFolder(Common::String &path) {
 	Common::FSNode(Common::Path(path)).listChildren(listHooks, "*." CORE_EXTENSIONS);
 	for (Common::ArchiveMemberPtr hook : listHooks) {
 		Common::FSNode *fshook = dynamic_cast<Common::FSNode *>(hook.get());
-		if (fshook->isDirectory())
+		if (!fshook || fshook->isDirectory())
 			continue;
 		if (remove(fshook->getPath().toString().c_str()) == 0)
-			retro_log_cb(RETRO_LOG_INFO, "Hook file deleted in '%s'.\n", fshook->getPath().toString().c_str());
+			if (retro_log_cb)
+				retro_log_cb(RETRO_LOG_INFO, "Hook file deleted in '%s'.\n", fshook->getPath().toString().c_str());
 		else {
 			res = false;
-			retro_log_cb(RETRO_LOG_WARN, "Failed to delete hook file in '%s'.\n", fshook->getPath().toString().c_str());
+			if (retro_log_cb)
+				retro_log_cb(RETRO_LOG_WARN, "Failed to delete hook file in '%s'.\n", fshook->getPath().toString().c_str());
 		}
 	}
 	return res;
@@ -149,10 +151,12 @@ bool LibretroOptionsWidget::generatePlaylist(Common::String playlistPath) {
 	RFILE *playlistFile = filestream_open(Common::String(playlistPath + "/" + CORE_NAME + ".lpl").c_str(), RETRO_VFS_FILE_ACCESS_WRITE, RETRO_VFS_FILE_ACCESS_HINT_NONE);
 	if (!playlistFile) {
 		_playlistStatus->setLabel(_("Failed, can't access playlist file"));
-		retro_log_cb(RETRO_LOG_ERROR, "Failed to access playlst file at '%s'.\n", Common::String(playlistPath +  "/" + CORE_NAME + ".lpl").c_str());
+		if (retro_log_cb)
+			retro_log_cb(RETRO_LOG_ERROR, "Failed to access playlst file at '%s'.\n", Common::String(playlistPath +  "/" + CORE_NAME + ".lpl").c_str());
 		return false;
 	} else
-		retro_log_cb(RETRO_LOG_INFO, "Playlist file created in '%s'.\n", Common::String(playlistPath + CORE_NAME + ".lpl").c_str());
+		if (retro_log_cb)
+			retro_log_cb(RETRO_LOG_INFO, "Playlist file created in '%s'.\n", Common::String(playlistPath + CORE_NAME + ".lpl").c_str());
 
 	/* Create common hook folder */
 	if (ConfMan.getInt("libretro_hooks_location", _domain) != kHooksLocationGame) {
@@ -222,11 +226,13 @@ bool LibretroOptionsWidget::generatePlaylist(Common::String playlistPath) {
 		/* Create hook file */
 		RFILE *hookFile = filestream_open(hookFilePath.c_str(), RETRO_VFS_FILE_ACCESS_WRITE, RETRO_VFS_FILE_ACCESS_HINT_NONE);
 		if (!hookFile) {
-			retro_log_cb(RETRO_LOG_ERROR, "Failed to access/create hook file at '%s'.\n", hookFilePath.c_str());
+			if (retro_log_cb)
+				retro_log_cb(RETRO_LOG_ERROR, "Failed to access/create hook file at '%s'.\n", hookFilePath.c_str());
 			success = false;
 			break;
 		} else
-			retro_log_cb(RETRO_LOG_INFO, "Hook file created in '%s'.\n", hookFilePath.c_str());
+			if (retro_log_cb)
+				retro_log_cb(RETRO_LOG_INFO, "Hook file created in '%s'.\n", hookFilePath.c_str());
 
 
 		filestream_printf(hookFile, "%s", iter->_key.c_str());
diff --git a/backends/platform/libretro/src/libretro-os-utils.cpp b/backends/platform/libretro/src/libretro-os-utils.cpp
index ae86dde4f07..4ff64a9d2c7 100644
--- a/backends/platform/libretro/src/libretro-os-utils.cpp
+++ b/backends/platform/libretro/src/libretro-os-utils.cpp
@@ -207,11 +207,13 @@ void OSystem_libretro::applyBackendSettings() {
 	//Register default paths
 	if (! s_homeDir.empty()) {
 		ConfMan.registerDefault("browser_lastpath", s_homeDir);
-		retro_log_cb(RETRO_LOG_DEBUG, "Default browser last path set to: %s\n", s_homeDir.c_str());
+		if (retro_log_cb)
+			retro_log_cb(RETRO_LOG_DEBUG, "Default browser last path set to: %s\n", s_homeDir.c_str());
 	}
 	if (! s_saveDir.empty()) {
 		ConfMan.registerDefault("savepath", s_saveDir);
-		retro_log_cb(RETRO_LOG_DEBUG, "Default save path set to: %s\n", s_saveDir.c_str());
+		if (retro_log_cb)
+			retro_log_cb(RETRO_LOG_DEBUG, "Default save path set to: %s\n", s_saveDir.c_str());
 	}
 
 	//Check current path settings


Commit: 180353ed6adc7d6948d0309f04436c40f3d061bd
    https://github.com/scummvm/scummvm/commit/180353ed6adc7d6948d0309f04436c40f3d061bd
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2026-05-05T01:28:37+02:00

Commit Message:
LIBRETRO: add _domain to confman.get

Changed paths:
    backends/platform/libretro/src/libretro-options-widget.cpp


diff --git a/backends/platform/libretro/src/libretro-options-widget.cpp b/backends/platform/libretro/src/libretro-options-widget.cpp
index d12a815ecb8..d75dbcc52c2 100644
--- a/backends/platform/libretro/src/libretro-options-widget.cpp
+++ b/backends/platform/libretro/src/libretro-options-widget.cpp
@@ -280,7 +280,7 @@ void LibretroOptionsWidget::handleCommand(GUI::CommandSender *sender, uint32 cmd
 	case kPlaylistGenerateCmd: {
 		save();
 		_playlistStatus->setLabel(Common::String("-"));
-		generatePlaylist(ConfMan.get("libretro_playlist_path"));
+		generatePlaylist(ConfMan.get("libretro_playlist_path", _domain));
 		break;
 	}
 	default:
@@ -290,7 +290,7 @@ void LibretroOptionsWidget::handleCommand(GUI::CommandSender *sender, uint32 cmd
 }
 
 void LibretroOptionsWidget::load() {
-	_playlistPath->setLabel(ConfMan.get("libretro_playlist_path"));
+	_playlistPath->setLabel(ConfMan.get("libretro_playlist_path", _domain));
 
 	if (ConfMan.getInt("libretro_playlist_version", _domain) == kPlaylistFormat6lines)
 		_playlistVersion->setSelected(kPlaylistFormat6lines);


Commit: 545569a73c2638a18c83a9d7c59b13b737404e34
    https://github.com/scummvm/scummvm/commit/545569a73c2638a18c83a9d7c59b13b737404e34
Author: Giovanni Cascione (ing.cascione at gmail.com)
Date: 2026-05-05T01:28:57+02:00

Commit Message:
GRAPHICS: MACGUI: early return on font generation failed
Abort font generation early on failure to avoid leaving partially initialized MacFont instances and subsequent NULL dereferences.

Changed paths:
    graphics/macgui/macfontmanager.cpp


diff --git a/graphics/macgui/macfontmanager.cpp b/graphics/macgui/macfontmanager.cpp
index 247cb3d2b54..a4a94fae3e3 100644
--- a/graphics/macgui/macfontmanager.cpp
+++ b/graphics/macgui/macfontmanager.cpp
@@ -951,6 +951,7 @@ void MacFontManager::generateTTFFont(MacFont &toFont, Common::SeekableReadStream
 
 	if (!font) {
 		warning("Failed to generate font '%s'", toPrintable(getFontName(toFont)).c_str());
+		return;
 	}
 
 	toFont.setGenerated(true);
@@ -980,6 +981,7 @@ void MacFontManager::generateFONTFont(MacFont &toFont, MacFont &fromFont) {
 
 	if (!font) {
 		warning("Failed to generate font '%s'", toPrintable(getFontName(toFont)).c_str());
+		return;
 	}
 
 	toFont.setGenerated(true);




More information about the Scummvm-git-logs mailing list