History

Updated native FileOutputStream to conform the modern java class.

Dmitry Kabak (userdima committed 13 years ago

Commit 464f58b1 parent 7503d242 files · +14 −17Browse files

Showing the changes to java (2 of 2 files). Show all

Unified · Split

2 files
  1. java/pkg/java/io/FileOutputStream_L.b +11 −13
  2. java/pkg/java/io/FileOutputStream_L.m +3 −4
java/pkg/java/io/FileOutputStream_L.b+11−13
@@ -44,7 +44,7 @@ init( jni_p : JNI ) · 43 unmodified lines
4444 #<<
4545 }
4646
47−open_rString_V( this : ref FileOutputStream_obj, p0 : JString)
47+open_rString_Z_V( this : ref FileOutputStream_obj, p0 : JString, p1 : int)
4848 {#>>
4949 # open file pointed to by p0. If it does not exists, create it and
5050 # and open it with mode of 644.
@@ -55,20 +55,12 @@ open_rString_V( this : ref FileOutputStream_obj, p0 : JString) · 4 unmodified lines
5555 this.fd.fd = sys->create(p0.str, sys->OWRITE, 8r666);
5656 if(this.fd.fd == nil)
5757 jni->ThrowException("java.io.IOException", sys->sprint("%r"));
58−}#<<
59−
60−openAppend_rString_V( this : ref FileOutputStream_obj, p0 : JString)
61−{#>>
62− if ((p0 == nil) || (p0.str == nil))
63− jni->ThrowException("java.lang.NullPointerException", "null filename");
6458
65− this.fd.fd = sys->open(p0.str, sys->OWRITE);
66− if(this.fd.fd == nil)
67− jni->ThrowException("java.io.IOException", sys->sprint("%r"));
68− sys->seek(this.fd.fd, big 0, sys->SEEKEND);
59+ if (p1)
60+ sys->seek(this.fd.fd, big 0, sys->SEEKEND);
6961 }#<<
7062
71−write_I_V( this : ref FileOutputStream_obj, p0 : int)
63+write_I_Z_V( this : ref FileOutputStream_obj, p0 : int, p1 : int)
7264 {#>>
7365 # p0 == character to write
7466 c := array[1] of byte;
@@ -77,11 +69,14 @@ write_I_V( this : ref FileOutputStream_obj, p0 : int) · 2 unmodified lines
7769 if ((this.fd == nil) || (this.fd.fd == nil))
7870 jni->ThrowException("java.lang.NullPointerException", "null FileDescriptor");
7971
72+ if (p1)
73+ sys->seek(this.fd.fd, big 0, sys->SEEKEND);
74+
8075 if (sys->write(this.fd.fd, c, 1) != 1)
8176 jni->ThrowException("java.io.IOException", sys->sprint("%r"));
8277 }#<<
8378
84−writeBytes_aB_I_I_V( this : ref FileOutputStream_obj, p0 : JArrayB,p1 : int,p2 : int)
79+writeBytes_aB_I_I_Z_V( this : ref FileOutputStream_obj, p0 : JArrayB,p1 : int,p2 : int, p3 : int)
8580 {#>>
8681 # p0 == buffer array to write from
8782 # p1 == offset in buffer
@@ -94,6 +89,9 @@ writeBytes_aB_I_I_V( this : ref FileOutputStream_obj, p0 : JArrayB,p1 : int,p2 : · 6 unmodified lines
9489 if ((p1 < 0) || (p2 < 0) || (p1 > (len p0.ary)))
9590 jni->ThrowException("java.lang.ArrayIndexOutOfBoundsException", nil);
9691
92+ if (p3)
93+ sys->seek(this.fd.fd, big 0, sys->SEEKEND);
94+
9795 n := 0;
9896 while (p2 > 0) {
9997 # you can also write the following line as.....
java/pkg/java/io/FileOutputStream_L.m+3−4
@@ -9,10 +9,9 @@ FileOutputStream_L : module · 8 unmodified lines
99 };
1010
1111 init : fn( jni_p : JNI );
12− open_rString_V : fn( this : ref FileOutputStream_obj, p0 : JString);
13− openAppend_rString_V : fn( this : ref FileOutputStream_obj, p0 : JString);
14− write_I_V : fn( this : ref FileOutputStream_obj, p0 : int);
15− writeBytes_aB_I_I_V : fn( this : ref FileOutputStream_obj, p0 : JArrayB,p1 : int,p2 : int);
12+ open_rString_Z_V : fn( this : ref FileOutputStream_obj, p0 : JString, p1 : int);
13+ write_I_Z_V : fn( this : ref FileOutputStream_obj, p0 : int, p1 : int);
14+ writeBytes_aB_I_I_Z_V : fn( this : ref FileOutputStream_obj, p0 : JArrayB,p1 : int,p2 : int, p3 : int);
1615 close0_V : fn( this : ref FileOutputStream_obj);
1716 initIDs_V: fn( );
1817