From c3491ebdc386529cafcde0ee30929f9308aad401 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sun, 9 Apr 2023 15:16:59 +0900 Subject: [PATCH] DescrObject::name to PyStrInterned --- vm/src/builtins/descriptor.rs | 4 ++-- vm/src/builtins/type.rs | 4 ++-- vm/src/vm/context.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/vm/src/builtins/descriptor.rs b/vm/src/builtins/descriptor.rs index a0995e1472..6135904e3e 100644 --- a/vm/src/builtins/descriptor.rs +++ b/vm/src/builtins/descriptor.rs @@ -1,4 +1,4 @@ -use super::{PyStr, PyType, PyTypeRef}; +use super::{PyStr, PyStrInterned, PyType, PyTypeRef}; use crate::{ class::PyClassImpl, function::PySetterValue, @@ -10,7 +10,7 @@ use rustpython_common::lock::PyRwLock; #[derive(Debug)] pub struct DescrObject { pub typ: PyTypeRef, - pub name: String, + pub name: &'static PyStrInterned, pub qualname: PyRwLock>, } diff --git a/vm/src/builtins/type.rs b/vm/src/builtins/type.rs index 59e09a2d39..ab6a44c436 100644 --- a/vm/src/builtins/type.rs +++ b/vm/src/builtins/type.rs @@ -793,8 +793,8 @@ impl PyType { let member_descriptor: PyRef = vm.ctx.new_pyref(MemberDescrObject { common: DescrObject { - typ: typ.to_owned(), - name: member.to_string(), + typ: typ.clone(), + name: vm.ctx.intern_str(member.as_str()), qualname: PyRwLock::new(None), }, member: member_def, diff --git a/vm/src/vm/context.rs b/vm/src/vm/context.rs index 163acb3ef5..9680231873 100644 --- a/vm/src/vm/context.rs +++ b/vm/src/vm/context.rs @@ -515,7 +515,7 @@ impl Context { let member_descriptor = MemberDescrObject { common: DescrObject { typ: class.to_owned(), - name: name.to_owned(), + name: self.intern_str(name), qualname: PyRwLock::new(None), }, member: member_def,