@@ -19,7 +19,8 @@ impl DataOutputStream {
1919 methods : vec ! [
2020 JavaMethodProto :: new( "<init>" , "(Ljava/io/OutputStream;)V" , Self :: init, Default :: default ( ) ) ,
2121 JavaMethodProto :: new( "write" , "(I)V" , Self :: write, Default :: default ( ) ) ,
22- JavaMethodProto :: new( "writeByte" , "(I)V" , Self :: write, Default :: default ( ) ) ,
22+ JavaMethodProto :: new( "writeByte" , "(I)V" , Self :: write_byte, Default :: default ( ) ) ,
23+ JavaMethodProto :: new( "writeBoolean" , "(Z)V" , Self :: write_boolean, Default :: default ( ) ) ,
2324 JavaMethodProto :: new( "writeInt" , "(I)V" , Self :: write_int, Default :: default ( ) ) ,
2425 JavaMethodProto :: new( "writeShort" , "(I)V" , Self :: write_short, Default :: default ( ) ) ,
2526 JavaMethodProto :: new( "writeLong" , "(J)V" , Self :: write_long, Default :: default ( ) ) ,
@@ -43,10 +44,28 @@ impl DataOutputStream {
4344 }
4445
4546 async fn write ( jvm : & Jvm , _: & mut RuntimeContext , this : ClassInstanceRef < Self > , b : i32 ) -> Result < ( ) > {
46- tracing:: debug!( "java.io.DataOutputStream::write({:?}, {:?})" , & this , b ) ;
47+ tracing:: debug!( "java.io.DataOutputStream::write({this :?}, {b :?})" ) ;
4748
4849 let out = jvm. get_field ( & this, "out" , "Ljava/io/OutputStream;" ) . await ?;
49- let _: ( ) = jvm. invoke_virtual ( & out, "write" , "(I)V" , [ b. into ( ) ] ) . await ?;
50+ let _: ( ) = jvm. invoke_virtual ( & out, "write" , "(I)V" , ( b, ) ) . await ?;
51+
52+ Ok ( ( ) )
53+ }
54+
55+ async fn write_byte ( jvm : & Jvm , _: & mut RuntimeContext , this : ClassInstanceRef < Self > , v : i32 ) -> Result < ( ) > {
56+ tracing:: debug!( "java.io.DataOutputStream::writeByte({this:?}, {v:?})" ) ;
57+
58+ let out = jvm. get_field ( & this, "out" , "Ljava/io/OutputStream;" ) . await ?;
59+ let _: ( ) = jvm. invoke_virtual ( & out, "write" , "(I)V" , ( v, ) ) . await ?;
60+
61+ Ok ( ( ) )
62+ }
63+
64+ async fn write_boolean ( jvm : & Jvm , _: & mut RuntimeContext , this : ClassInstanceRef < Self > , v : bool ) -> Result < ( ) > {
65+ tracing:: debug!( "java.io.DataOutputStream::writeBoolean({this:?}, {v:?})" ) ;
66+
67+ let out = jvm. get_field ( & this, "out" , "Ljava/io/OutputStream;" ) . await ?;
68+ let _: ( ) = jvm. invoke_virtual ( & out, "writeByte" , "(I)V" , ( v as i32 , ) ) . await ?;
5069
5170 Ok ( ( ) )
5271 }
0 commit comments