summaryrefslogtreecommitdiff
path: root/std/result.zc
diff options
context:
space:
mode:
Diffstat (limited to 'std/result.zc')
-rw-r--r--std/result.zc8
1 files changed, 7 insertions, 1 deletions
diff --git a/std/result.zc b/std/result.zc
index b043162..3794f1a 100644
--- a/std/result.zc
+++ b/std/result.zc
@@ -24,12 +24,18 @@ impl Result<T> {
return !self.is_ok;
}
+ fn forget(self) {
+ memset(&self.val, 0, sizeof(T));
+ }
+
fn unwrap(self) -> T {
if (!self.is_ok) {
!"Panic: unwrap called on Err: {self.err}";
exit(1);
}
- return self.val;
+ var v = self.val;
+ memset(&self.val, 0, sizeof(T));
+ return v;
}
fn expect(self, msg: char*) -> T {