Skip to content

Commit 9e000a3

Browse files
author
Vyacheslav
committed
fix: Wrapper over an already given instance
1 parent cdbb786 commit 9e000a3

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

Src/StackMemoryCollections/GenerateWrappers.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,8 @@ in StringBuilder builder
214214
{
215215
builder.Append($@"
216216
public {currentType.Name}Wrapper(
217-
void* start
217+
void* start,
218+
bool createInstance
218219
)
219220
{{
220221
if (start == null)
@@ -226,6 +227,12 @@ in StringBuilder builder
226227
_stackMemoryC = null;
227228
_stackMemoryS = null;
228229
");
230+
builder.Append($@"
231+
if(createInstance)
232+
{{
233+
234+
");
235+
229236
if (!currentType.IsValueType)
230237
{
231238
builder.Append($@"
@@ -246,6 +253,7 @@ in StringBuilder builder
246253
}
247254

248255
builder.Append($@"
256+
}}
249257
}}
250258
");
251259
}

Src/Tests/StackOfTestStructFixture.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -307,8 +307,8 @@ public void CopyTest()
307307
stack2.Size = stack.Size;
308308
Assert.That(stack.Size, Is.EqualTo(stack2.Size));
309309

310-
using var wrap = new Tests.Struct.TestStructWrapper(stack[0]);
311-
using var wrap2 = new Tests.Struct.TestStructWrapper(stack2[0]);
310+
using var wrap = new Tests.Struct.TestStructWrapper(stack[0], false);
311+
using var wrap2 = new Tests.Struct.TestStructWrapper(stack2[0], false);
312312
Assert.That(wrap.Int32, Is.EqualTo(wrap2.Int32));
313313
Assert.That(wrap.Int64, Is.EqualTo(wrap2.Int64));
314314
Assert.That(wrap.TestClass.Int32, Is.EqualTo(wrap2.TestClass.Int32));
@@ -539,7 +539,7 @@ public void IndexTest()
539539
stack.Push(item3);
540540

541541
Assert.That(new IntPtr(stack[0]), Is.EqualTo(new IntPtr((byte*)memory.Start + (TestStructHelper.GetSize() * 2))));
542-
using var wrap = new Tests.Struct.TestStructWrapper(stack[0]);
542+
using var wrap = new Tests.Struct.TestStructWrapper(stack[0], false);
543543
Assert.That(wrap.Int32, Is.EqualTo(7));
544544
Assert.That(wrap.Int64, Is.EqualTo(21));
545545
Assert.That(wrap.TestClass.Int32, Is.EqualTo(6));

0 commit comments

Comments
 (0)