|
1 | 1 | use crate::call_stack::CallStack; |
2 | | -use crate::Error::UnsupportedClassFileVersion; |
| 2 | +use crate::Error::{RuntimeError, UnsupportedClassFileVersion}; |
3 | 3 | use crate::{Configuration, Result}; |
4 | 4 | use ristretto_classfile::{mutf8, Version}; |
5 | 5 | use ristretto_classloader::manifest::MAIN_CLASS; |
@@ -144,22 +144,24 @@ impl VM { |
144 | 144 | .await?; |
145 | 145 |
|
146 | 146 | // TODO: Implement System::initPhase2() |
147 | | - // let init_phase2_method = system_class.try_get_method("initPhase2", "(ZZ)I")?; |
148 | | - // let phase2_result = self.invoke( |
149 | | - // &system_class, |
150 | | - // &init_phase2_method, |
151 | | - // vec![Value::Int(1), Value::Int(1)], |
152 | | - // )?; |
153 | | - // let Some(Value::Int(result)) = phase2_result else { |
154 | | - // return Err(RuntimeError(format!( |
155 | | - // "System::initPhase2() call failed: {phase2_result:?}" |
156 | | - // ))); |
157 | | - // }; |
158 | | - // if result != 0 { |
159 | | - // return Err(RuntimeError(format!( |
160 | | - // "System::initPhase2() call failed: {result}" |
161 | | - // ))); |
162 | | - // } |
| 147 | + let init_phase2_method = system_class.try_get_method("initPhase2", "(ZZ)I")?; |
| 148 | + let phase2_result = self |
| 149 | + .invoke( |
| 150 | + &system_class, |
| 151 | + &init_phase2_method, |
| 152 | + vec![Value::Int(1), Value::Int(1)], |
| 153 | + ) |
| 154 | + .await?; |
| 155 | + let Some(Value::Int(result)) = phase2_result else { |
| 156 | + return Err(RuntimeError(format!( |
| 157 | + "System::initPhase2() call failed: {phase2_result:?}" |
| 158 | + ))); |
| 159 | + }; |
| 160 | + if result != 0 { |
| 161 | + return Err(RuntimeError(format!( |
| 162 | + "System::initPhase2() call failed: {result}" |
| 163 | + ))); |
| 164 | + } |
163 | 165 |
|
164 | 166 | // TODO: Implement System::initPhase3() |
165 | 167 | // let init_phase3_method = system_class.try_get_method("initPhase3", "()V")?; |
|
0 commit comments