aboutsummaryrefslogtreecommitdiff
path: root/src/classes
diff options
context:
space:
mode:
Diffstat (limited to 'src/classes')
-rw-r--r--src/classes/pptr.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/classes/pptr.rs b/src/classes/pptr.rs
index 5d57c20..14c72b6 100644
--- a/src/classes/pptr.rs
+++ b/src/classes/pptr.rs
@@ -70,15 +70,16 @@ impl<T: FromValue> PPtr<T> {
} else {
&self.ecx.externals[self.file_id as usize - 1].path_name
};
+ debug!("ref path {path:?}");
if let Some(path) = path.strip_prefix("archive:") {
- let path = path.split_once("/").unwrap_or(("", path)).1;
+ let path = path.split("/").last().unwrap_or(path);
let ni = bundle
.fs
.header
.nodes()
.iter()
.find(|n| n.name == path)
- .unwrap()
+ .ok_or(anyhow!("cannot find {path:?} in bundle"))?
.clone();
let file = bundle.get_fs_file(&ni).unwrap();
let mut file = file.lock().unwrap();
@@ -86,7 +87,7 @@ impl<T: FromValue> PPtr<T> {
.objects
.iter()
.find(|o| o.path_id == self.path_id)
- .unwrap()
+ .ok_or(anyhow!("object with path_id = {} not found", self.path_id))?
.clone();
file.read_object(ob)?.parse()
} else if *path == bundle.default_resources.ecx.name {