fix ErrorContext::peak always returning Ok(())
This commit is contained in:
parent
fe369966cd
commit
1f21d5f434
1 changed files with 5 additions and 11 deletions
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue