Change order of IsFrameExternal checks.

Check image first, then perform the expensive filename check.
This commit is contained in:
Bartosz Taudul
2026-05-17 14:30:45 +02:00
parent b18d81cbbe
commit 41f1172774

View File

@@ -8936,15 +8936,29 @@ void Worker::CacheSourceFiles()
static bool IsFrameExternalImpl( const char* filename, const char* image )
{
if( strncmp( filename, "/usr/", 5 ) == 0 || strncmp( filename, "/lib/", 5 ) == 0 || strcmp( filename, "[unknown]" ) == 0 || strcmp( filename, "<kernel>" ) == 0 ) return true;
if( strncmp( filename, "C:\\Program Files", 16 ) == 0 || strncmp( filename, "d:\\a01\\_work\\", 13 ) == 0 ) return true;
if( image && (
strncmp( image, "/usr/", 5 ) == 0 ||
strncmp( image, "/lib/", 5 ) == 0 ||
strncmp( image, "/lib64/", 7 ) == 0 ||
strcmp( image, "<kernel>" ) == 0
) ) return true;
if(
strncmp( filename, "/usr/", 5 ) == 0 ||
strncmp( filename, "/lib/", 5 ) == 0 ||
strcmp( filename, "[unknown]" ) == 0 ||
strcmp( filename, "<kernel>" ) == 0 ||
strncmp( filename, "C:\\Program Files", 16 ) == 0 ||
strncmp( filename, "d:\\a01\\_work\\", 13 ) == 0
) return true;
while( *filename )
{
if( filename[0] == '/' && filename[1] == '.' && filename[2] != '.' ) return true;
filename++;
}
if( !image ) return false;
return strncmp( image, "/usr/", 5 ) == 0 || strncmp( image, "/lib/", 5 ) == 0 || strncmp( image, "/lib64/", 7 ) == 0 || strcmp( image, "<kernel>" ) == 0;
return false;
}
bool Worker::IsFrameExternal( StringIdx filename, StringIdx image ) const