Fixed bugs on Insert and array set methods

pull/60/head
David Hall 2019-05-09 15:56:31 -06:00
parent 440af024bb
commit 8d211da1de
1 changed files with 5 additions and 3 deletions

View File

@ -90,8 +90,10 @@ namespace Vanara.InteropServices
get => handle.ToArray<TElem>(Count, (int)HeaderSize);
set
{
Count = value.Length;
Size = GetRequiredSize(value.Length, HeaderSize);
var len = value?.Length ?? 0;
Count = len;
Size = GetRequiredSize(len, HeaderSize);
Zero();
value.MarshalToPtr(handle, (int)HeaderSize);
OnCountChanged();
OnUpdateHeader();
@ -168,7 +170,7 @@ namespace Vanara.InteropServices
if (index > 0)
CopyTo(newPtr, 0, insertPt);
Marshal.StructureToPtr(item, newPtr.Offset(insertPt), false);
if (index < Count)
if (index < Count - 1)
CopyTo(newPtr, insertPt + ElemSize, newSz - insertPt);
mm.FreeMem(handle);
SetHandle(newPtr);