Browse Source

Use memcpy instead of System.Runtime.CompilerServices.Unsafe

pull/1331/head
Jeremy Koritzinsky 8 years ago
parent
commit
e462e06193
  1. 5
      build/Unsafe.props
  2. 4
      packages.cake
  3. 7
      src/Android/Avalonia.Android/Resources/Resource.Designer.cs
  4. 2
      src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj
  5. 11
      src/Windows/Avalonia.Direct2D1/FramebufferShimRenderTarget.cs
  6. 11
      src/Windows/Avalonia.Direct2D1/Media/Imaging/WicBitmapImpl.cs
  7. 3
      src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs

5
build/Unsafe.props

@ -1,5 +0,0 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="4.4.0" />
</ItemGroup>
</Project>

4
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 []
{

7
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()
{

2
src/Windows/Avalonia.Direct2D1/Avalonia.Direct2D1.csproj

@ -2,7 +2,6 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
</PropertyGroup>
<ItemGroup>
<Compile Include="..\..\Shared\SharedAssemblyInfo.cs">
@ -26,5 +25,4 @@
<Import Project="..\..\..\build\SharpDX.props" />
<Import Project="..\..\Shared\RenderHelpers\RenderHelpers.projitems" Label="Shared" />
<Import Project="..\..\..\build\JetBrains.Annotations.props" />
<Import Project="..\..\..\build\Unsafe.props" />
</Project>

11
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();

11
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);
}
}
}

3
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
{

Loading…
Cancel
Save