Skip to content

Commit 8ee7356

Browse files
committed
Fix: Only initialize default reader instances when actually used.
1 parent e62ab46 commit 8ee7356

4 files changed

Lines changed: 8 additions & 4 deletions

File tree

OsuMemoryDataProvider/OsuMemoryDataProvider.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<RepositoryUrl>https://github.com/Piotrekol/ProcessMemoryDataFinder/tree/master/OsuMemoryDataProvider</RepositoryUrl>
1717
<title>OsuMemoryDataProvider</title>
1818
<Summary>Read osu! game memory values based on pre-made memory signatures(patterns)</Summary>
19-
<Version>0.10.3</Version>
19+
<Version>0.11.0</Version>
2020
<IncludeSymbols>true</IncludeSymbols>
2121
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
2222
<LangVersion>latest</LangVersion>

OsuMemoryDataProvider/OsuMemoryReader.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ public class OsuMemoryReader : SigMemoryReader, IOsuMemoryReader
1717
/// It is strongly encouraged to use single <see cref="OsuMemoryReader" /> instance in order to not have to duplicate
1818
/// find-signature-location work
1919
/// </summary>
20-
public static IOsuMemoryReader Instance { get; } = new OsuMemoryReader(new("osu!"));
20+
public static IOsuMemoryReader Instance => instance ??= new OsuMemoryReader(new("osu!"));
2121

22+
private static IOsuMemoryReader instance;
2223
private static readonly ConcurrentDictionary<ProcessTargetOptions, IOsuMemoryReader> Instances =
2324
new ConcurrentDictionary<ProcessTargetOptions, IOsuMemoryReader>();
2425

OsuMemoryDataProvider/StructuredOsuMemoryReader.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,15 @@ public class StructuredOsuMemoryReader : IStructuredMemoryReader, IDisposable
1313
{
1414
private StructuredMemoryReader _memoryReader;
1515
private static readonly ConcurrentDictionary<ProcessTargetOptions, StructuredOsuMemoryReader> Instances = [];
16+
private static StructuredOsuMemoryReader instance;
17+
1618
public OsuBaseAddresses OsuMemoryAddresses { get; } = new OsuBaseAddresses();
1719
/// <summary>
1820
/// It is strongly encouraged to use single <see cref="StructuredOsuMemoryReader" /> instance in order to not have to duplicate
1921
/// find-pattern-location work
2022
/// </summary>
21-
public static StructuredOsuMemoryReader Instance { get; } = new StructuredOsuMemoryReader(new("osu!"));
23+
public static StructuredOsuMemoryReader Instance => instance ??= new StructuredOsuMemoryReader(new("osu!"));
24+
2225
public bool WithTimes
2326
{
2427
get => _memoryReader.WithTimes;

ProcessMemoryDataFinder/ProcessMemoryDataFinder.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<RepositoryUrl>https://github.com/Piotrekol/ProcessMemoryDataFinder/tree/master/ProcessMemoryDataFinder</RepositoryUrl>
1515
<title>ProcessMemoryDataFinder</title>
1616
<Summary>Find and read data in processes based on pre-made memory signatures(patterns)</Summary>
17-
<Version>0.8.5</Version>
17+
<Version>0.9.0</Version>
1818
<IncludeSymbols>true</IncludeSymbols>
1919
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
2020
<LangVersion>latest</LangVersion>

0 commit comments

Comments
 (0)