feat(dispose): add debug checks for double disposal

Added debug-only checks in Dispose methods of HashMapHelper, UnTypedArray, and UnsafeArray to log a message (with optional stack trace) if Dispose is called on an uninitialized or already disposed instance, unless the buffer is null. Incremented assembly version to 1.6.6.
This commit is contained in:
2026-04-02 20:01:09 +09:00
parent 730bc664ac
commit 2b438660a1
4 changed files with 21 additions and 1 deletions

View File

@@ -719,6 +719,12 @@ public unsafe struct HashMapHelper<TKey> : IDisposable
{
if (!IsCreated)
{
#if DEBUG
if (_buffer == null)
{
return;
}
var message = "The HashMapHelper is not created or already disposed.";
#if MHP_ENABLE_STACKTRACE
var stackTrace = new StackTrace(1, true);
@@ -736,6 +742,7 @@ public unsafe struct HashMapHelper<TKey> : IDisposable
message += Environment.NewLine + sb.ToString();
#endif
Debug.WriteLine(message);
#endif
return;
}

View File

@@ -273,6 +273,11 @@ public unsafe struct UnTypedArray : IUnTypedCollection
{
if (!IsCreated)
{
#if DEBUG
if (_buffer == null)
{
return;
}
var message = "The UnTypedArray is not created or already disposed.";
#if MHP_ENABLE_STACKTRACE
var stackTrace = new StackTrace(1, true);
@@ -290,6 +295,7 @@ public unsafe struct UnTypedArray : IUnTypedCollection
message += Environment.NewLine + sb.ToString();
#endif
Debug.WriteLine(message);
#endif
return;
}

View File

@@ -418,6 +418,12 @@ public unsafe struct UnsafeArray<T> : IUnsafeCollection<T>
{
if (!IsCreated)
{
#if DEBUG
if (_buffer == null)
{
return;
}
var message = "The UnsafeArray is not created or already disposed.";
#if MHP_ENABLE_STACKTRACE
var stackTrace = new StackTrace(1, true);
@@ -435,6 +441,7 @@ public unsafe struct UnsafeArray<T> : IUnsafeCollection<T>
message += Environment.NewLine + sb.ToString();
#endif
Debug.WriteLine(message);
#endif
return;
}