/// <summary> /// Gets all Asar current warning. They're safe to keep for as long as you want. /// </summary> /// <returns>All Asar's warnings.</returns> public static Asarerror[] getwarnings() { int length = 0; RawAsarError *ptr = asar_getwarnings(out length); return(cleanerrors(ptr, length)); }
private static Asarerror[] cleanerrors(RawAsarError *ptr, int length) { Asarerror[] output = new Asarerror[length]; // Copy unmanaged to managed memory to avoid potential errors in case the area // gets cleared by Asar. for (int i = 0; i < length; i++) { output[i].Fullerrdata = Marshal.PtrToStringAnsi(ptr[i].fullerrdata); output[i].Rawerrdata = Marshal.PtrToStringAnsi(ptr[i].rawerrdata); output[i].Block = Marshal.PtrToStringAnsi(ptr[i].block); output[i].Filename = Marshal.PtrToStringAnsi(ptr[i].filename); output[i].Line = ptr[i].line; output[i].Callerfilename = Marshal.PtrToStringAnsi(ptr[i].callerfilename); output[i].Callerline = ptr[i].callerline; output[i].ErrorId = ptr[i].errid; } return(output); }
/// <summary> /// Gets all Asar current errors. They're safe to keep for as long as you want. /// </summary> /// <returns>All Asar's errors.</returns> public static Asarerror[] geterrors() { RawAsarError *ptr = asar_geterrors(out int length); return(cleanerrors(ptr, length)); }
/// <summary> /// Gets all Asar current warning. They're safe to keep for as long as you want. /// </summary> /// <returns>All Asar's warnings.</returns> public static Asarerror[] GetWarnings() { RawAsarError *ptr = _GetWarnings(out int length); return(CleanErrors(ptr, length)); }