internal unsafe static void ConvertContentsToNative_Nullable <T>(ref T?[] managedArray, IntPtr pNativeHome) where T : struct { if (managedArray != null) { IntPtr *ptr = *(IntPtr *)((void *)pNativeHome); for (int i = 0; i < managedArray.Length; i++) { ptr[i] = NullableMarshaler.ConvertToNative <T>(ref managedArray[i]); } } }
internal static unsafe void ConvertContentsToNative_Nullable <T>(ref T?[] managedArray, IntPtr pNativeHome) where T : struct { if (managedArray == null) { return; } IntPtr *numPtr = (IntPtr *)*(IntPtr *)(void *)pNativeHome; for (int index = 0; index < managedArray.Length; ++index) { numPtr[index] = NullableMarshaler.ConvertToNative <T>(ref managedArray[index]); } }
internal static void ConvertToManagedRetVoid <T>(IntPtr pNative, ref T?retObj) where T : struct { retObj = NullableMarshaler.ConvertToManaged <T>(pNative); }