public static void ReAllocHGlobal_DataCopied()
{
const int Size = 3;
IntPtr p1 = Marshal.AllocHGlobal((IntPtr)Size);
IntPtr p2 = p1;
try
{
WriteBytes(p1, Size);
int add = 1;
do
{
p2 = Marshal.ReAllocHGlobal(p2, (IntPtr)(Size + add));
VerifyBytes(p2, Size);
add++;
}
while (p2 == p1); // stop once we've validated moved case
}
finally
{
Marshal.FreeHGlobal(p2);
}
}