checkpoint

This commit is contained in:
2020-04-29 13:10:17 -04:00
parent c1618deb83
commit 64f7dd4b7d
54 changed files with 294 additions and 263 deletions

21
Alpm/SafeAlpmHandle.cs Normal file
View File

@@ -0,0 +1,21 @@
using System;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using Foodsoft.Alpm;
namespace Foodsoft.Alpm
{
internal sealed class SafeAlpmHandle : SafeHandle
{
private SafeAlpmHandle() : base(IntPtr.Zero, true) { }
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.MayFail), PrePrepareMethod]
protected override bool ReleaseHandle() => alpm.alpm_release(handle) == 0;
public override bool IsInvalid
{
[ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success), PrePrepareMethod]
get => handle == IntPtr.Zero;
}
}
}