mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-29 03:04:38 +08:00
Remove PyObject::new from objgenerator.
This commit is contained in:
1 parent
aeaa94966f
commit
d38e89a811
2 files changed
+5
-7
No files matched your search
@@ -4,13 +4,14 @@
|
||||
|
||||
use crate::frame::{ExecutionResult, Frame};
|
||||
use crate::function::PyFuncArgs;
|
||||
use crate::pyobject::{PyContext, PyObject, PyObjectRef, PyResult, PyValue, TypeProtocol};
|
||||
use crate::pyobject::{PyContext, PyObjectRef, PyRef, PyResult, PyValue, TypeProtocol};
|
||||
use crate::vm::VirtualMachine;
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct PyGenerator {
|
||||
frame: PyObjectRef,
|
||||
}
|
||||
type PyGeneratorRef = PyRef<PyGenerator>;
|
||||
|
||||
impl PyValue for PyGenerator {
|
||||
fn class(vm: &mut VirtualMachine) -> PyObjectRef {
|
||||
@@ -37,11 +38,8 @@ pub fn init(context: &PyContext) {
|
||||
);
|
||||
}
|
||||
|
||||
pub fn new_generator(vm: &mut VirtualMachine, frame: PyObjectRef) -> PyResult {
|
||||
Ok(PyObject::new(
|
||||
PyGenerator { frame },
|
||||
vm.ctx.generator_type.clone(),
|
||||
))
|
||||
pub fn new_generator(frame: PyObjectRef, vm: &mut VirtualMachine) -> PyGeneratorRef {
|
||||
PyGenerator { frame }.into_ref(vm)
|
||||
}
|
||||
|
||||
fn generator_iter(vm: &mut VirtualMachine, args: PyFuncArgs) -> PyResult {
|
||||
|
||||
+1
-1
@@ -353,7 +353,7 @@ impl VirtualMachine {
|
||||
|
||||
// If we have a generator, create a new generator
|
||||
if code_object.is_generator {
|
||||
objgenerator::new_generator(self, frame)
|
||||
Ok(objgenerator::new_generator(frame, self).into_object())
|
||||
} else {
|
||||
self.run_frame_full(frame)
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user