Files
DotNetAlpm/SafeAlpmHandle.cs
2020-04-27 12:34:56 -04:00

21 lines
651 B
C#

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