diff --git a/UI/frontend-plugins/frontend-tools/scripts.cpp b/UI/frontend-plugins/frontend-tools/scripts.cpp index e2d4a23e0..d923dcf61 100644 --- a/UI/frontend-plugins/frontend-tools/scripts.cpp +++ b/UI/frontend-plugins/frontend-tools/scripts.cpp @@ -494,9 +494,14 @@ static void script_log(void *, obs_script_t *script, int log_level, const char *message) { QString qmsg; - qmsg = QStringLiteral("[%1] %2").arg( - obs_script_get_file(script), - message); + + if (script) { + qmsg = QStringLiteral("[%1] %2").arg( + obs_script_get_file(script), + message); + } else { + qmsg = QStringLiteral("[Unknown Script] %1").arg(message); + } QMetaObject::invokeMethod(scriptLogWindow, "AddLogMsg", Q_ARG(int, log_level), diff --git a/deps/obs-scripting/obs-scripting-logging.c b/deps/obs-scripting/obs-scripting-logging.c index 18c5fd5f6..ebae79dea 100644 --- a/deps/obs-scripting/obs-scripting-logging.c +++ b/deps/obs-scripting/obs-scripting-logging.c @@ -28,14 +28,19 @@ void script_log_va(obs_script_t *script, int level, const char *format, const char *lang = "(Unknown)"; size_t start_len; - switch (script->type) { - case OBS_SCRIPT_LANG_UNKNOWN: lang = "(Unknown language)"; break; - case OBS_SCRIPT_LANG_LUA: lang = "Lua"; break; - case OBS_SCRIPT_LANG_PYTHON: lang = "Python"; break; + if (script) { + switch (script->type) { + case OBS_SCRIPT_LANG_UNKNOWN: lang = "(Unknown language)"; break; + case OBS_SCRIPT_LANG_LUA: lang = "Lua"; break; + case OBS_SCRIPT_LANG_PYTHON: lang = "Python"; break; + } + + start_len = snprintf(msg, sizeof(msg), "[%s: %s] ", + lang, script->file.array); + } else { + start_len = snprintf(msg, sizeof(msg), "[Unknown Script] "); } - start_len = snprintf(msg, sizeof(msg), "[%s: %s] ", - lang, script->file.array); vsnprintf(msg + start_len, sizeof(msg) - start_len, format, args); if (callback) diff --git a/deps/obs-scripting/obs-scripting-python.c b/deps/obs-scripting/obs-scripting-python.c index b445f1127..766aa92af 100644 --- a/deps/obs-scripting/obs-scripting-python.c +++ b/deps/obs-scripting/obs-scripting-python.c @@ -1193,7 +1193,11 @@ static PyObject *py_script_log_internal(PyObject *self, PyObject *args, while (endl) { *endl = 0; - script_log(&cur_python_script->base, log_level, "%s", start); + if (cur_python_script) + script_log(&cur_python_script->base, log_level, "%s", + start); + else + script_log(NULL, log_level, "%s", start); *endl = '\n'; start = endl + 1;