diff --git a/stepmania/src/EnumHelper.h b/stepmania/src/EnumHelper.h index 024d045d2e..c152fe8472 100644 --- a/stepmania/src/EnumHelper.h +++ b/stepmania/src/EnumHelper.h @@ -55,7 +55,10 @@ static void CheckXToStringParamType( const char **p ) { } static auto_ptr as_##X##Name[CNT]; \ if( as_##X##Name[0].get() == NULL ) { \ for( unsigned i = 0; i < CNT; ++i ) \ - as_##X##Name[i] = auto_ptr ( new CString( X##Names[i] ) ); \ + { \ + auto_ptr ap( new CString( X##Names[i] ) ); \ + as_##X##Name[i] = ap; \ + } \ } \ ASSERT( CNT == ARRAYSIZE(X##Names) ); \ if( x == CNT+1 ) \ @@ -83,7 +86,10 @@ static void CheckXToStringParamType( const char **p ) { } static auto_ptr g_##X##Name[NUM_##X]; \ if( g_##X##Name[0].get() == NULL ) { \ for( unsigned i = 0; i < NUM_##X; ++i ) \ - g_##X##Name[i] = auto_ptr ( new LocalizedString(#X, X##ToString((X)i)) ); \ + { \ + auto_ptr ap( new LocalizedString(#X, X##ToString((X)i)) ); \ + g_##X##Name[i] = ap; \ + } \ } \ return g_##X##Name[x]->GetValue(); \ }