From 4cb7f026dee431e611863d7378815a98401c5b48 Mon Sep 17 00:00:00 2001 From: Adam Kelly Date: Tue, 26 Mar 2019 15:38:19 +0000 Subject: [PATCH 1/2] Remove unnecessary cast to pyobject in kwarg construction. --- vm/src/vm.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vm/src/vm.rs b/vm/src/vm.rs index 321d659b8f..4148184f42 100644 --- a/vm/src/vm.rs +++ b/vm/src/vm.rs @@ -451,11 +451,11 @@ impl VirtualMachine { // Do we support `**kwargs` ? let kwargs = match code_object.varkeywords { bytecode::Varargs::Named(ref kwargs_name) => { - let d = self.ctx.new_dict().into_object(); - locals.set_item(&self.ctx, kwargs_name, d.clone()); + let d = self.ctx.new_dict(); + locals.set_item(&self.ctx, kwargs_name, d.as_object().clone()); Some(d) } - bytecode::Varargs::Unnamed => Some(self.ctx.new_dict().into_object()), + bytecode::Varargs::Unnamed => Some(self.ctx.new_dict()), bytecode::Varargs::None => None, }; From c64417654700084d508458ecb4cb7d9fe4d1dbfe Mon Sep 17 00:00:00 2001 From: Adam Kelly Date: Tue, 26 Mar 2019 15:38:40 +0000 Subject: [PATCH 2/2] Modules have attributes, not items. --- vm/src/stdlib/json.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/vm/src/stdlib/json.rs b/vm/src/stdlib/json.rs index b881b7a724..fbe7ea6b1e 100644 --- a/vm/src/stdlib/json.rs +++ b/vm/src/stdlib/json.rs @@ -199,8 +199,7 @@ pub fn de_pyobject(vm: &VirtualMachine, s: &str) -> PyResult { de.deserialize(&mut serde_json::Deserializer::from_str(s)) .map_err(|err| { let json_decode_error = vm - .sys_module - .get_item("modules") + .get_attribute(vm.sys_module.clone(), "modules") .unwrap() .get_item("json") .unwrap()