diff --git a/src/Debug/EcsDebug.cs b/src/Debug/EcsDebug.cs index 3917b77..f433638 100644 --- a/src/Debug/EcsDebug.cs +++ b/src/Debug/EcsDebug.cs @@ -10,8 +10,11 @@ namespace DCFApixels.DragonECS public readonly int id; public EcsProfilerMarker(int id) => this.id = id; public EcsProfilerMarker(string name) => id = EcsDebug.RegisterMark(name); + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void Begin() => EcsDebug.ProfileMarkBegin(id); + [MethodImpl(MethodImplOptions.AggressiveInlining)] public void End() => EcsDebug.ProfileMarkEnd(id); + [MethodImpl(MethodImplOptions.AggressiveInlining)] public AutoScope Auto() => new AutoScope(id); public readonly struct AutoScope : IDisposable diff --git a/src/EcsPipeline.cs b/src/EcsPipeline.cs index 7ce902f..2e395ac 100644 --- a/src/EcsPipeline.cs +++ b/src/EcsPipeline.cs @@ -64,9 +64,15 @@ namespace DCFApixels.DragonECS } _isInit = true; - GetRunner>().Inject(this); - GetRunner().PreInit(this); - GetRunner().Init(this); + var ecsPipelineInjectRunner = GetRunner>(); + ecsPipelineInjectRunner.Inject(this); + EcsRunner.Destroy(ecsPipelineInjectRunner); + var preInitRunner = GetRunner(); + preInitRunner.PreInit(this); + EcsRunner.Destroy(preInitRunner); + var initRunner = GetRunner(); + initRunner.Init(this); + EcsRunner.Destroy(initRunner); _runRunnerCache = GetRunner(); }