fix ErrorContext::peak always returning Ok(())

This commit is contained in:
do butterflies cry? 2026-04-13 20:28:40 +10:00
parent fe369966cd
commit 1f21d5f434
Signed by: cry
GPG key ID: F68745A836CA0412

View file

@ -28,7 +28,6 @@ use std::ptr::NonNull;
use super::{NixError, NixideResult};
use crate::stdext::{AsCPtr as _, CCharPtrExt as _};
use crate::sys;
use crate::util::panic_issue_call_failed;
use crate::util::wrap;
use crate::util::wrappers::AsInnerPtr;
@ -100,7 +99,7 @@ impl Into<NixideResult<()>> for &ErrorContext {
};
let msg = match self.get_msg() {
Some(msg) => msg,
None => return Ok(()),
None => String::new(),
};
let err = match inner {
@ -109,13 +108,8 @@ impl Into<NixideResult<()>> for &ErrorContext {
sys::NixErr::Overflow => NixError::Overflow,
sys::NixErr::Key => NixError::KeyNotFound(None),
sys::NixErr::NixError => NixError::ExprEval {
name: self
.get_nix_err_name()
.unwrap_or_else(|| panic_issue_call_failed!()),
info_msg: self
.get_nix_err_info_msg()
.unwrap_or_else(|| panic_issue_call_failed!()),
name: self.get_nix_err_name().unwrap(),
info_msg: self.get_nix_err_info_msg().unwrap_or_else(|| String::new()),
},
// XXX: WARNING: Recoverable only exists in later version of Nix
@ -217,7 +211,7 @@ impl ErrorContext {
///
/// This function **never fails**.
///
fn get_err(&self) -> Option<sys::NixErr> {
pub fn get_err(&self) -> Option<sys::NixErr> {
match unsafe { sys::nix_err_code(self.as_ptr()) } {
sys::NixErr::Ok => None,
err => Some(err),
@ -254,7 +248,7 @@ impl ErrorContext {
/// Hence we can just test whether the returned pointer is a `NULL` pointer,
/// and avoid passing in a [NixCContext] struct.
///
fn get_msg(&self) -> Option<String> {
pub fn get_msg(&self) -> Option<String> {
// NOTE: an Err here only occurs when `self.get_code() == Ok(())`
let mut n: c_uint = 0;
let result = wrap::nix_fn!(|ctx: &ErrorContext| unsafe {