Skip to content

Commit 741cfea

Browse files
committed
vm.ctx.new_int returns PyInt
1 parent a86769e commit 741cfea

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+190
-172
lines changed

benches/microbenchmarks.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ fn bench_rustpy_code(group: &mut BenchmarkGroup<WallTime>, bench: &MicroBenchmar
134134
.locals
135135
.set_item(
136136
vm.ctx.new_ascii_literal(ascii!("ITERATIONS")),
137-
vm.ctx.new_int(idx),
137+
vm.new_pyobj(idx),
138138
vm,
139139
)
140140
.expect("Error adding ITERATIONS local variable");

derive/src/pyclass.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -539,7 +539,7 @@ where
539539

540540
let value = if args.item.is_const() {
541541
// TODO: ctx.new_value
542-
quote_spanned!(ident.span() => ctx.new_int(Self::#ident))
542+
quote_spanned!(ident.span() => ctx.new_int(Self::#ident).into())
543543
} else {
544544
quote_spanned!(ident.span() => Self::#ident(ctx))
545545
};

stdlib/src/binascii.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,13 @@ mod decl {
9494
}
9595

9696
#[pyfunction]
97-
fn crc32(data: ArgBytesLike, value: OptionalArg<u32>, vm: &VirtualMachine) -> PyResult {
97+
fn crc32(data: ArgBytesLike, value: OptionalArg<u32>) -> u32 {
9898
let crc = value.unwrap_or(0);
9999

100100
let mut digest = crc32::Digest::new_with_initial(crc32::IEEE, crc);
101101
data.with_ref(|bytes| digest.write(bytes));
102102

103-
Ok(vm.ctx.new_int(digest.sum32()))
103+
digest.sum32()
104104
}
105105

106106
#[derive(FromArgs)]

stdlib/src/dis.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ mod decl {
3333
fn compiler_flag_names(vm: &VirtualMachine) -> PyDictRef {
3434
let dict = vm.ctx.new_dict();
3535
for (name, flag) in CodeFlags::NAME_MAPPING {
36-
dict.set_item(vm.ctx.new_int(flag.bits()), vm.ctx.new_utf8_str(name), vm)
36+
dict.set_item(vm.new_pyobj(flag.bits()), vm.ctx.new_utf8_str(name), vm)
3737
.unwrap();
3838
}
3939
dict

stdlib/src/fcntl.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ mod fcntl {
5252
if ret < 0 {
5353
return Err(os::errno_err(vm));
5454
}
55-
Ok(vm.ctx.new_int(ret))
55+
Ok(vm.new_pyobj(ret))
5656
}
5757

5858
#[pyfunction]
@@ -85,7 +85,7 @@ mod fcntl {
8585
if ret < 0 {
8686
return Err(os::errno_err(vm));
8787
}
88-
return Ok(vm.ctx.new_int(ret));
88+
return Ok(vm.ctx.new_int(ret).into());
8989
}
9090
// treat like an immutable buffer
9191
fill_buf(&arg_buf)?
@@ -103,7 +103,7 @@ mod fcntl {
103103
if ret < 0 {
104104
return Err(os::errno_err(vm));
105105
}
106-
Ok(vm.ctx.new_int(ret))
106+
Ok(vm.ctx.new_int(ret).into())
107107
}
108108
}
109109
}

stdlib/src/hashlib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ mod hashlib {
5757
}
5858

5959
#[pyproperty]
60-
fn digest_size(&self, vm: &VirtualMachine) -> PyResult {
61-
Ok(vm.ctx.new_int(self.read().digest_size()))
60+
fn digest_size(&self) -> usize {
61+
self.read().digest_size()
6262
}
6363

6464
#[pymethod]

stdlib/src/json.rs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,11 @@ mod _json {
7575
) -> PyResult<PyIterReturn> {
7676
let c = match s.chars().next() {
7777
Some(c) => c,
78-
None => return Ok(PyIterReturn::StopIteration(Some(vm.ctx.new_int(idx)))),
78+
None => {
79+
return Ok(PyIterReturn::StopIteration(Some(
80+
vm.ctx.new_int(idx).into(),
81+
)))
82+
}
7983
};
8084
let next_idx = idx + c.len_utf8();
8185
match c {
@@ -115,7 +119,7 @@ mod _json {
115119
($s:literal, $val:expr) => {
116120
if s.starts_with($s) {
117121
return Ok(PyIterReturn::Return(
118-
vm.ctx.new_tuple(vec![$val, vm.ctx.new_int(idx + $s.len())]),
122+
vm.ctx.new_tuple(vec![$val, vm.new_pyobj(idx + $s.len())]),
119123
));
120124
}
121125
};
@@ -127,7 +131,8 @@ mod _json {
127131

128132
if let Some((res, len)) = self.parse_number(s, vm) {
129133
return Ok(PyIterReturn::Return(
130-
vm.ctx.new_tuple(vec![res?, vm.ctx.new_int(idx + len)]),
134+
vm.ctx
135+
.new_tuple(vec![res?, vm.ctx.new_int(idx + len).into()]),
131136
));
132137
}
133138

@@ -136,7 +141,7 @@ mod _json {
136141
if s.starts_with($s) {
137142
return Ok(PyIterReturn::Return(vm.ctx.new_tuple(vec![
138143
vm.invoke(&self.parse_constant, ($s.to_owned(),))?,
139-
vm.ctx.new_int(idx + $s.len()),
144+
vm.new_pyobj(idx + $s.len()),
140145
])));
141146
}
142147
};
@@ -146,7 +151,9 @@ mod _json {
146151
parse_constant!("Infinity");
147152
parse_constant!("-Infinity");
148153

149-
Ok(PyIterReturn::StopIteration(Some(vm.ctx.new_int(idx))))
154+
Ok(PyIterReturn::StopIteration(Some(
155+
vm.ctx.new_int(idx).into(),
156+
)))
150157
}
151158

152159
fn parse_number(&self, s: &str, vm: &VirtualMachine) -> Option<(PyResult, usize)> {
@@ -180,7 +187,7 @@ mod _json {
180187
} else if let Some(ref parse_int) = self.parse_int {
181188
vm.invoke(parse_int, (buf.to_owned(),))
182189
} else {
183-
Ok(vm.ctx.new_int(BigInt::from_str(buf).unwrap()))
190+
Ok(vm.new_pyobj(BigInt::from_str(buf).unwrap()))
184191
};
185192
Some((ret, buf.len()))
186193
}
@@ -197,7 +204,9 @@ mod _json {
197204
let idx = idx as usize;
198205
let mut chars = pystr.as_str().chars();
199206
if idx > 0 && chars.nth(idx - 1).is_none() {
200-
return Ok(PyIterReturn::StopIteration(Some(vm.ctx.new_int(idx))));
207+
return Ok(PyIterReturn::StopIteration(Some(
208+
vm.ctx.new_int(idx).into(),
209+
)));
201210
}
202211
zelf.parse(chars.as_str(), pystr.clone(), idx, zelf.clone().into(), vm)
203212
}

stdlib/src/math.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -430,7 +430,7 @@ mod math {
430430
if result_or_err.is_err() {
431431
if let Ok(Some(v)) = x.try_to_f64(vm) {
432432
let v = try_f64_to_bigint(v.ceil(), vm)?;
433-
return Ok(vm.ctx.new_int(v));
433+
return Ok(vm.ctx.new_int(v).into());
434434
}
435435
}
436436
result_or_err
@@ -442,7 +442,7 @@ mod math {
442442
if result_or_err.is_err() {
443443
if let Ok(Some(v)) = x.try_to_f64(vm) {
444444
let v = try_f64_to_bigint(v.floor(), vm)?;
445-
return Ok(vm.ctx.new_int(v));
445+
return Ok(vm.ctx.new_int(v).into());
446446
}
447447
}
448448
result_or_err

stdlib/src/re.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -368,19 +368,19 @@ mod re {
368368
impl PyMatch {
369369
#[pymethod]
370370
fn start(&self, group: OptionalArg, vm: &VirtualMachine) -> PyResult {
371-
let group = group.unwrap_or_else(|| vm.ctx.new_int(0));
371+
let group = group.unwrap_or_else(|| vm.ctx.new_int(0).into());
372372
let start = self
373373
.get_bounds(group, vm)?
374-
.map_or_else(|| vm.ctx.new_int(-1), |r| vm.ctx.new_int(r.start));
374+
.map_or_else(|| vm.ctx.new_int(-1).into(), |r| vm.ctx.new_int(r.start).into());
375375
Ok(start)
376376
}
377377

378378
#[pymethod]
379379
fn end(&self, group: OptionalArg, vm: &VirtualMachine) -> PyResult {
380-
let group = group.unwrap_or_else(|| vm.ctx.new_int(0));
380+
let group = group.unwrap_or_else(|| vm.ctx.new_int(0).into());
381381
let end = self
382382
.get_bounds(group, vm)?
383-
.map_or_else(|| vm.ctx.new_int(-1), |r| vm.ctx.new_int(r.end));
383+
.map_or_else(|| vm.ctx.new_int(-1).into(), |r| vm.ctx.new_int(r.end).into());
384384
Ok(end)
385385
}
386386

stdlib/src/select.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ mod decl {
332332
let removed = remove_fd(&mut self.fds.lock(), fd);
333333
removed
334334
.map(drop)
335-
.ok_or_else(|| vm.new_key_error(vm.ctx.new_int(fd)))
335+
.ok_or_else(|| vm.new_key_error(vm.ctx.new_int(fd).into()))
336336
}
337337

338338
#[pymethod]

0 commit comments

Comments
 (0)