@@ -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 }
0 commit comments