Skip to content

Commit fcca63e

Browse files
committed
[fmod] Fix crash in FMOD Studio editor on Linux
Fixes: #385
1 parent 9552384 commit fcca63e

2 files changed

Lines changed: 16 additions & 3 deletions

File tree

fmod/src/library.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ const wchar_t* gLoadingBinaryNames[] = {
3434
#elif defined (IPL_OS_MACOSX)
3535
const char* gLoadingBinaryNames[] = {
3636
"libphonon_fmod.dylib",
37-
"phonon_fmod.bundle/Contents/MacOS/phonon_fmod",
3837
};
3938
#else
4039
const char* gLoadingBinaryNames[] = {
@@ -49,7 +48,6 @@ const char* gLoadedBinaryNames[] = {
4948
#elif defined (IPL_OS_MACOSX)
5049
const char* gLoadedBinaryNames[] = {
5150
"libphonon.dylib",
52-
"phonon.bundle/Contents/MacOS/phonon",
5351
};
5452
#else
5553
const char* gLoadedBinaryNames[] = {
@@ -127,7 +125,7 @@ void Library::getLoadingBinaryPath(char* loadingBinaryPath,
127125

128126
auto path = strchr(line, '/');
129127
if (!path)
130-
break;
128+
continue;
131129

132130
for (auto i = 0; i < numLoadingBinaryNames; ++i)
133131
{

fmod/src/steamaudio_fmod.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
#if defined(IPL_OS_MACOSX)
2020
#include <mach-o/dyld.h>
21+
#elif defined(IPL_OS_LINUX)
22+
#include <unistd.h>
2123
#endif
2224

2325
#if defined(IPL_OS_IOS) || defined(IPL_OS_WASM)
@@ -172,6 +174,19 @@ bool isRunningInEditor()
172174
uint32_t bufferSize = 1024;
173175
_NSGetExecutablePath(moduleFileName, &bufferSize);
174176
return (strstr(moduleFileName, "FMOD Studio.app") != nullptr);
177+
#elif defined(IPL_OS_LINUX)
178+
char moduleFileName[1024] = {0};
179+
readlink("/proc/self/exe", moduleFileName, 1024);
180+
181+
auto baseName = strrchr(moduleFileName, '/');
182+
if (!baseName)
183+
return false;
184+
185+
baseName++;
186+
187+
return (strstr(baseName, "fmodstudio") != nullptr);
188+
#else
189+
return false;
175190
#endif
176191
}
177192

0 commit comments

Comments
 (0)