diff --git a/src/fs_mem.ts b/src/fs_mem.ts index 2f2085c..414bd9b 100644 --- a/src/fs_mem.ts +++ b/src/fs_mem.ts @@ -338,6 +338,9 @@ export class OpenDirectory extends Fd { return wasi.ERRNO_PERM; } + if (inode instanceof Directory) { + inode.parent = parent_entry; + } parent_entry.contents.set(filename, inode); return wasi.ERRNO_SUCCESS; @@ -557,7 +560,7 @@ class Path { export class Directory extends Inode { contents: Map; - private parent: Directory | null = null; + parent: Directory | null = null; constructor(contents: Map | [string, Inode][]) { super(); @@ -712,6 +715,7 @@ export class Directory extends Inode { new_child = new File(new ArrayBuffer(0)); } else { new_child = new Directory(new Map()); + new_child.parent = parent_entry; } parent_entry.contents.set(filename, new_child); entry = new_child;