diff --git a/build/Unsafe.props b/build/Unsafe.props
deleted file mode 100644
index db96658bdd..0000000000
--- a/build/Unsafe.props
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
diff --git a/packages.cake b/packages.cake
index 3c2f76205c..bc290fce22 100644
--- a/packages.cake
+++ b/packages.cake
@@ -120,7 +120,6 @@ public class Packages
var SharpDXDirect3D11Version = packageVersions["SharpDX.Direct3D11"].FirstOrDefault().Item1;
var SharpDXDirect3D9Version = packageVersions["SharpDX.Direct3D9"].FirstOrDefault().Item1;
var SharpDXDXGIVersion = packageVersions["SharpDX.DXGI"].FirstOrDefault().Item1;
- var UnsafeVersion = packageVersions["System.Runtime.CompilerServices.Unsafe"].FirstOrDefault().Item1;
context.Information("Package: Serilog, version: {0}", SerilogVersion);
context.Information("Package: Sprache, version: {0}", SpracheVersion);
@@ -395,8 +394,7 @@ public class Packages
new NuSpecDependency() { Id = "SharpDX", Version = SharpDXVersion },
new NuSpecDependency() { Id = "SharpDX.Direct2D1", Version = SharpDXDirect2D1Version },
new NuSpecDependency() { Id = "SharpDX.Direct3D11", Version = SharpDXDirect3D11Version },
- new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion },
- new NuSpecDependency() { Id = "System.Runtime.CompilerServices.Unsafe", Version = UnsafeVersion }
+ new NuSpecDependency() { Id = "SharpDX.DXGI", Version = SharpDXDXGIVersion }
},
Files = new []
{
diff --git a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs
index e66c2800d3..80cbbc51ec 100644
--- a/src/Android/Avalonia.Android/Resources/Resource.Designer.cs
+++ b/src/Android/Avalonia.Android/Resources/Resource.Designer.cs
@@ -40,14 +40,11 @@ namespace Avalonia.Android
public partial class String
{
- // aapt resource value: 0x7f020002
- public static int ApplicationName = 2130837506;
-
// aapt resource value: 0x7f020001
- public static int Hello = 2130837505;
+ public static int ApplicationName = 2130837505;
// aapt resource value: 0x7f020000
- public static int library_name = 2130837504;
+ public static int Hello = 2130837504;
static String()
{
diff --git a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj
index 2b9ce5466b..a84c373886 100644
--- a/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj
+++ b/src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj
@@ -2,7 +2,6 @@
netstandard2.0
false
- true
@@ -26,5 +25,4 @@
-
\ No newline at end of file
diff --git a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs
index dbba7271e2..523cfeed46 100644
--- a/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs
+++ b/src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs
@@ -68,13 +68,10 @@ namespace Avalonia.Direct2D1
{
for (var y = 0; y < _target.Height; y++)
{
- unsafe
- {
- Unsafe.CopyBlock(
- (void*)(_target.Address + _target.RowBytes * y),
- (void*)(l.Data.DataPointer + l.Stride * y),
- (uint)Math.Min(l.Stride, _target.RowBytes));
- }
+ UnmanagedMethods.CopyMemory(
+ (_target.Address + _target.RowBytes * y),
+ (l.Data.DataPointer + l.Stride * y),
+ (UIntPtr)Math.Min(l.Stride, _target.RowBytes));
}
}
Dispose();
diff --git a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
index 540810f13c..371dfcfc3e 100644
--- a/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
+++ b/src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
@@ -75,13 +75,10 @@ namespace Avalonia.Direct2D1.Media
{
for (var row = 0; row < height; row++)
{
- unsafe
- {
- Unsafe.CopyBlock(
- (void*)(l.Data.DataPointer + row * l.Stride),
- (void*)(data + row * stride),
- (uint) l.Data.Pitch);
- }
+ UnmanagedMethods.CopyMemory(
+ (l.Data.DataPointer + row * l.Stride),
+ (data + row * stride),
+ (UIntPtr) l.Data.Pitch);
}
}
}
diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs
index bc81010377..a0518cf92e 100644
--- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs
+++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs
@@ -947,6 +947,9 @@ namespace Avalonia.Win32.Interop
uint dwMaximumSizeHigh,
uint dwMaximumSizeLow,
string lpName);
+
+ [DllImport("msvcrt.dll", EntryPoint="memcpy", SetLastError = false, CallingConvention=CallingConvention.Cdecl)]
+ public static extern IntPtr CopyMemory(IntPtr dest, IntPtr src, UIntPtr count);
public enum MONITOR
{