diff --git a/src/cswinrt/code_writers.h b/src/cswinrt/code_writers.h index ac8955040..7f183af20 100644 --- a/src/cswinrt/code_writers.h +++ b/src/cswinrt/code_writers.h @@ -1867,11 +1867,6 @@ private static % _% = new %("%.%", %.IID); auto objrefname = w.write_temp("%", bind(classType)); w.write(R"( private static volatile FactoryObjectReference __%; -private static FactoryObjectReference Make__%() -{ - global::System.Threading.Interlocked.CompareExchange(ref __%, ActivationFactory.Get("%.%"), null); - return __%; -} private static FactoryObjectReference % { get @@ -1883,7 +1878,7 @@ private static FactoryObjectReference % } else { - return Make__%(); + return __% = ActivationFactory.Get("%.%"); } } } @@ -1891,12 +1886,9 @@ private static FactoryObjectReference % objrefname, objrefname, objrefname, - classType.TypeNamespace(), - classType.TypeName(), - objrefname, - objrefname, objrefname, - objrefname); + classType.TypeNamespace(), + classType.TypeName()); } void write_static_objref_definition(writer& w, std::string_view const& vftblType, TypeDef const& staticsType, TypeDef const& classType) @@ -1933,11 +1925,6 @@ private static ObjectReference<%> % => __% ?? Make__%(); auto objrefname = w.write_temp("%", bind(staticsType)); w.write(R"( private static volatile FactoryObjectReference<%> __%; -private static FactoryObjectReference<%> Make__%() -{ - global::System.Threading.Interlocked.CompareExchange(ref __%, ActivationFactory.Get<%>("%.%", %.IID), null); - return __%; -} private static FactoryObjectReference<%> % { get @@ -1949,7 +1936,7 @@ private static FactoryObjectReference<%> % } else { - return Make__%(); + return __% = ActivationFactory.Get<%>("%.%", %.IID); } } } @@ -1959,15 +1946,11 @@ private static FactoryObjectReference<%> % vftblType, objrefname, objrefname, + objrefname, vftblType, classType.TypeNamespace(), classType.TypeName(), - bind(staticsType, typedef_name_type::StaticAbiClass, true), - objrefname, - vftblType, - objrefname, - objrefname, - objrefname); + bind(staticsType, typedef_name_type::StaticAbiClass, true)); } }