stdout und stderr encoding
This commit is contained in:
parent
022bfe9ee6
commit
b4c33a0d9b
4 changed files with 116 additions and 6 deletions
|
@ -361,6 +361,34 @@ impl JdkInternalUtilSystemPropsRaw {
|
|||
};
|
||||
|
||||
let array_reference = jvm.heap_area.make_empty_array(&jvm.class_store, AbstractTypeDescription { array_level: 0, kind: AbstractTypeKind::Classname("java/lang/String".into()) }, array_length);
|
||||
let utf8_string_ref = jvm.heap_area.make_handmade_string(&String::from("UTF-8"), &jvm.class_store);
|
||||
|
||||
{
|
||||
let stdout_encoding_ndx_result = jvm.heap_area.static_area.get(
|
||||
&String::from("jdk/internal/util/SystemProps$Raw"),
|
||||
&String::from("_stdout_encoding_NDX"),
|
||||
AbstractTypeDescription { array_level: 0, kind: AbstractTypeKind::Int() }
|
||||
);
|
||||
let stdout_encoding_ndx = match stdout_encoding_ndx_result {
|
||||
Ok(FieldValue::Int(i)) => i as usize,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
jvm.heap_area.object_area.set_array_element(array_reference, stdout_encoding_ndx, FieldValue::Reference(utf8_string_ref));
|
||||
|
||||
}
|
||||
{
|
||||
let stderr_encoding_ndx_result = jvm.heap_area.static_area.get(
|
||||
&String::from("jdk/internal/util/SystemProps$Raw"),
|
||||
&String::from("_stderr_encoding_NDX"),
|
||||
AbstractTypeDescription { array_level: 0, kind: AbstractTypeKind::Int() }
|
||||
);
|
||||
let stderr_encoding_ndx = match stderr_encoding_ndx_result {
|
||||
Ok(FieldValue::Int(i)) => i as usize,
|
||||
_ => unreachable!(),
|
||||
};
|
||||
jvm.heap_area.object_area.set_array_element(array_reference, stderr_encoding_ndx, FieldValue::Reference(utf8_string_ref));
|
||||
|
||||
}
|
||||
|
||||
Ok(JVMCallbackOperation::ReturnFrame(StackValue::Reference(array_reference)))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue