diff --git a/stepmania/src/Profile.cpp b/stepmania/src/Profile.cpp index c28ca691cf..3f412f6302 100644 --- a/stepmania/src/Profile.cpp +++ b/stepmania/src/Profile.cpp @@ -1014,6 +1014,15 @@ void Profile::LoadEditableDataFromDir( CString sDir ) CLAMP( m_iWeightPounds, 50, 500 ); } +CString Profile::FastLoadProfileNameFromMemoryCard( CString sDir ) +{ + CString sProfileDir = sDir + PREFSMAN->m_sMemoryCardProfileSubdir + '/'; + + Profile profile; + profile.LoadEditableDataFromDir( sProfileDir ); + return profile.GetDisplayName(); +} + void Profile::LoadGeneralDataFromNode( const XNode* pNode ) { ASSERT( pNode->m_sName == "GeneralData" ); diff --git a/stepmania/src/Profile.h b/stepmania/src/Profile.h index da8819e693..213fc32b5f 100644 --- a/stepmania/src/Profile.h +++ b/stepmania/src/Profile.h @@ -283,6 +283,7 @@ public: bool SaveAllToDir( CString sDir, bool bSignData ) const; void LoadEditableDataFromDir( CString sDir ); + static CString FastLoadProfileNameFromMemoryCard( CString sDir ); LoadResult LoadStatsXmlFromNode( const XNode* pNode ); void LoadGeneralDataFromNode( const XNode* pNode ); void LoadSongScoresFromNode( const XNode* pNode ); diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Linux.cpp b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Linux.cpp index ca78881e96..4a66dc2b1f 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Linux.cpp +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Linux.cpp @@ -238,14 +238,8 @@ bool MemoryCardDriverThreaded_Linux::DoOneUpdate( bool bMount, vectorMount( "dir", d.sOsMountDir, TEMP_MOUNT_POINT ); - - Profile profile; - CString sProfileDir = TEMP_MOUNT_POINT + PREFSMAN->m_sMemoryCardProfileSubdir + '/'; - profile.LoadEditableDataFromDir( sProfileDir ); - d.sName = profile.GetDisplayName(); - + d.sName = Profile::FastLoadProfileNameFromMemoryCard( TEMP_MOUNT_POINT ); FILEMAN->Unmount( "dir", d.sOsMountDir, TEMP_MOUNT_POINT ); - } ExecuteCommand( "umount " + d.sOsMountDir ); diff --git a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp index c76fb96c1c..9223107649 100644 --- a/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp +++ b/stepmania/src/arch/MemoryCard/MemoryCardDriverThreaded_Windows.cpp @@ -99,11 +99,7 @@ bool MemoryCardDriverThreaded_Windows::DoOneUpdate( bool bMount, vectorMount( "dir", usbd.sOsMountDir, TEMP_MOUNT_POINT_INTERNAL ); FILEMAN->Mount( "timeout", TEMP_MOUNT_POINT_INTERNAL, TEMP_MOUNT_POINT ); - Profile profile; - CString sProfileDir = TEMP_MOUNT_POINT + PREFSMAN->m_sMemoryCardProfileSubdir + '/'; - profile.LoadEditableDataFromDir( sProfileDir ); - usbd.bIsNameAvailable = true; - usbd.sName = profile.GetDisplayName(); + usbd.sName = Profile::FastLoadProfileNameFromMemoryCard( TEMP_MOUNT_POINT ); FILEMAN->Unmount( "timeout", TEMP_MOUNT_POINT_INTERNAL, TEMP_MOUNT_POINT ); FILEMAN->Unmount( "dir", usbd.sOsMountDir, TEMP_MOUNT_POINT_INTERNAL );