From 3a6649ddebd9df9b28f72f0f3d4e3cbf191d9ee9 Mon Sep 17 00:00:00 2001 From: Adam Kelly Date: Sun, 12 Aug 2018 18:26:04 +0100 Subject: [PATCH] Use standard method machinary to call __init__. --- vm/src/vm.rs | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/vm/src/vm.rs b/vm/src/vm.rs index 80d67b722..c67534594 100644 --- a/vm/src/vm.rs +++ b/vm/src/vm.rs @@ -469,10 +469,8 @@ impl VirtualMachine { // more or less __new__ operator let dict = self.new_dict(); let obj = PyObject::new(PyObjectKind::Instance { dict: dict }, type_ref.clone()); - let init = type_ref.get_attr(&String::from("__init__")); - let mut self_args = PyFuncArgs { args: args.args }; - self_args.args.insert(0, obj.clone()); - self.invoke(init, self_args)?; + let init = objclass::get_attribute(self, type_ref, obj.clone(), &String::from("__init__"))?; + self.invoke(init, args)?; // TODO Raise TypeError if init returns not None. Ok(obj) }