Skip to content

Commit a42a38b

Browse files
committed
Refactor few utils methods
1 parent 10feb9a commit a42a38b

File tree

8 files changed

+48
-72
lines changed

8 files changed

+48
-72
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/bz2/BZ2CompressorBuiltins.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353

5454
import com.oracle.graal.python.PythonLanguage;
5555
import com.oracle.graal.python.annotations.ArgumentClinic;
56+
import com.oracle.graal.python.annotations.ArgumentClinic.ClinicConversion;
5657
import com.oracle.graal.python.builtins.Builtin;
5758
import com.oracle.graal.python.builtins.CoreFunctions;
5859
import com.oracle.graal.python.builtins.PythonBuiltins;
@@ -86,7 +87,7 @@ protected List<? extends NodeFactory<? extends PythonBuiltinBaseNode>> getNodeFa
8687
}
8788

8889
@Builtin(name = __INIT__, minNumOfPositionalArgs = 1, parameterNames = {"$self", "compresslevel"})
89-
@ArgumentClinic(name = "compresslevel", conversion = ArgumentClinic.ClinicConversion.Int, defaultValue = "9", useDefaultForNone = true)
90+
@ArgumentClinic(name = "compresslevel", conversion = ClinicConversion.Int, defaultValue = "9", useDefaultForNone = true)
9091
@GenerateNodeFactory
9192
public abstract static class InitNode extends PythonBinaryClinicBuiltinNode {
9293

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/BufferedIONodes.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,12 +46,12 @@
4646
import static com.oracle.graal.python.builtins.modules.io.AbstractBufferedIOBuiltins.WRITABLE;
4747
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.SEEK_CUR;
4848
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.SEEK_SET;
49-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.append;
50-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.createStream;
5149
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.rawOffset;
5250
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.readahead;
5351
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.safeDowncast;
54-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.toByteArray;
52+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.append;
53+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.createOutputStream;
54+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.toByteArray;
5555
import static com.oracle.graal.python.nodes.ErrorMessages.CANNOT_FIT_P_IN_OFFSET_SIZE;
5656
import static com.oracle.graal.python.nodes.ErrorMessages.FILE_OR_STREAM_IS_NOT_SEEKABLE;
5757
import static com.oracle.graal.python.nodes.ErrorMessages.IO_STREAM_INVALID_POS;
@@ -379,7 +379,7 @@ static byte[] readline(VirtualFrame frame, PBuffered self, int size,
379379
}
380380

381381
/* Now we try to get some more from the raw stream */
382-
ByteArrayOutputStream chunks = createStream();
382+
ByteArrayOutputStream chunks = createOutputStream();
383383
if (n > 0) {
384384
append(chunks, self.getBuffer(), self.getPos(), n);
385385
self.incPos(n);

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/BufferedIOUtil.java

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,6 @@
4040
*/
4141
package com.oracle.graal.python.builtins.modules.io;
4242

43-
import java.io.ByteArrayOutputStream;
44-
45-
import com.oracle.truffle.api.CompilerDirectives;
46-
4743
public class BufferedIOUtil {
4844

4945
// start of the stream (the default); offset should be zero or positive
@@ -82,24 +78,4 @@ protected static long rawOffset(PBuffered self) {
8278
protected static int minusLastBlock(PBuffered self, int size) {
8379
return (self.getBufferMask() != 0 ? (size & ~self.getBufferMask()) : (self.getBufferSize() * (size / self.getBufferSize())));
8480
}
85-
86-
@CompilerDirectives.TruffleBoundary
87-
protected static ByteArrayOutputStream createStream() {
88-
return new ByteArrayOutputStream();
89-
}
90-
91-
@CompilerDirectives.TruffleBoundary
92-
protected static void append(ByteArrayOutputStream chunks, byte[] bytes, int off, int len) {
93-
chunks.write(bytes, off, len);
94-
}
95-
96-
@CompilerDirectives.TruffleBoundary
97-
protected static void append(ByteArrayOutputStream chunks, byte[] bytes, int len) {
98-
append(chunks, bytes, 0, len);
99-
}
100-
101-
@CompilerDirectives.TruffleBoundary
102-
protected static byte[] toByteArray(ByteArrayOutputStream chunks) {
103-
return chunks.toByteArray();
104-
}
10581
}

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/BufferedReaderNodes.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,12 @@
4040
*/
4141
package com.oracle.graal.python.builtins.modules.io;
4242

43-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.append;
44-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.createStream;
4543
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.isValidReadBuffer;
4644
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.minusLastBlock;
4745
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.safeDowncast;
48-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.toByteArray;
46+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.append;
47+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.createOutputStream;
48+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.toByteArray;
4949
import static com.oracle.graal.python.nodes.ErrorMessages.IO_S_INVALID_LENGTH;
5050
import static com.oracle.graal.python.nodes.ErrorMessages.IO_S_SHOULD_RETURN_BYTES;
5151
import static com.oracle.graal.python.runtime.exception.PythonErrorType.OSError;
@@ -331,7 +331,7 @@ byte[] bufferedreaderReadAll(VirtualFrame frame, PBuffered self, @SuppressWarnin
331331
}
332332
}
333333

334-
ByteArrayOutputStream chunks = createStream();
334+
ByteArrayOutputStream chunks = createOutputStream();
335335

336336
while (true) {
337337
if (data != null) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/FileIOBuiltins.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@
4747
import static com.oracle.graal.python.builtins.modules.PosixModuleBuiltins.mapPythonSeekWhenceToPosix;
4848
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.SEEK_CUR;
4949
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.SEEK_END;
50-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.append;
51-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.createStream;
52-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.toByteArray;
5350
import static com.oracle.graal.python.builtins.modules.io.IOBaseBuiltins.BUFSIZ;
5451
import static com.oracle.graal.python.builtins.modules.io.IOModuleBuiltins.DEFAULT_BUFFER_SIZE;
52+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.append;
53+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.createOutputStream;
54+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.toByteArray;
5555
import static com.oracle.graal.python.builtins.objects.exception.OSErrorEnum.EAGAIN;
5656
import static com.oracle.graal.python.nodes.ErrorMessages.BAD_MODE;
5757
import static com.oracle.graal.python.nodes.ErrorMessages.CANNOT_USE_CLOSEFD;
@@ -498,7 +498,7 @@ Object readall(VirtualFrame frame, PFileIO self,
498498
// ignore
499499
}
500500

501-
ByteArrayOutputStream result = createStream();
501+
ByteArrayOutputStream result = createOutputStream();
502502
byte[] buffer;
503503
int bytesRead = 0;
504504
while (true) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/IOBaseBuiltins.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,11 @@
4040
*/
4141
package com.oracle.graal.python.builtins.modules.io;
4242

43-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.append;
44-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.createStream;
45-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.toByteArray;
4643
import static com.oracle.graal.python.builtins.modules.io.BufferedReaderBuiltins.PEEK;
44+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.append;
45+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.createOutputStream;
4746
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.getBytes;
47+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.toByteArray;
4848
import static com.oracle.graal.python.nodes.ErrorMessages.S_SHOULD_RETURN_BYTES_NOT_P;
4949
import static com.oracle.graal.python.nodes.SpecialMethodNames.FILENO;
5050
import static com.oracle.graal.python.nodes.SpecialMethodNames.__ENTER__;
@@ -424,7 +424,7 @@ PBytes readline(VirtualFrame frame, Object self, int limit,
424424
@Cached ConditionProfile isBuffer) {
425425
/* For backwards compatibility, a (slowish) readline(). */
426426
Object peek = lib.lookupAttribute(self, frame, "peek");
427-
ByteArrayOutputStream buffer = createStream();
427+
ByteArrayOutputStream buffer = createOutputStream();
428428
while (limit < 0 || buffer.size() < limit) {
429429
int nreadahead = 1;
430430
if (hasPeek.profile(peek != PNone.NO_VALUE)) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/io/RawIOBaseBuiltins.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@
4040
*/
4141
package com.oracle.graal.python.builtins.modules.io;
4242

43-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.append;
44-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.createStream;
45-
import static com.oracle.graal.python.builtins.modules.io.BufferedIOUtil.toByteArray;
43+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.append;
44+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.createOutputStream;
4645
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.getBytes;
46+
import static com.oracle.graal.python.builtins.objects.bytes.BytesUtils.toByteArray;
4747
import static com.oracle.graal.python.nodes.ErrorMessages.S_SHOULD_RETURN_BYTES;
4848
import static com.oracle.graal.python.runtime.exception.PythonErrorType.NotImplementedError;
4949
import static com.oracle.graal.python.runtime.exception.PythonErrorType.TypeError;
@@ -138,7 +138,7 @@ Object readall(VirtualFrame frame, Object self,
138138
@CachedLibrary(limit = "1") PythonObjectLibrary asBytes,
139139
@CachedLibrary("self") PythonObjectLibrary libSelf,
140140
@Cached ConditionProfile isBuffer) {
141-
ByteArrayOutputStream chunks = createStream();
141+
ByteArrayOutputStream chunks = createOutputStream();
142142
while (true) {
143143
Object data = libSelf.lookupAndCallRegularMethod(self, frame, READ, IOModuleBuiltins.DEFAULT_BUFFER_SIZE);
144144
// TODO _PyIO_trap_eintr [GR-23297]

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/bytes/BytesUtils.java

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,8 @@
3030
import static com.oracle.graal.python.runtime.exception.PythonErrorType.OverflowError;
3131
import static com.oracle.graal.python.runtime.exception.PythonErrorType.ValueError;
3232

33+
import java.io.ByteArrayOutputStream;
3334
import java.io.UnsupportedEncodingException;
34-
import java.nio.ByteBuffer;
35-
import java.nio.CharBuffer;
36-
import java.nio.charset.CharacterCodingException;
37-
import java.nio.charset.Charset;
38-
import java.nio.charset.CodingErrorAction;
3935
import java.nio.charset.StandardCharsets;
4036
import java.util.Arrays;
4137

@@ -739,6 +735,31 @@ public static String createASCIIString(byte[] retbuf) {
739735
return new String(retbuf, StandardCharsets.US_ASCII);
740736
}
741737

738+
@TruffleBoundary
739+
public static ByteArrayOutputStream createOutputStream() {
740+
return new ByteArrayOutputStream();
741+
}
742+
743+
@TruffleBoundary
744+
public static ByteArrayOutputStream createOutputStream(int n) {
745+
return new ByteArrayOutputStream(n);
746+
}
747+
748+
@TruffleBoundary
749+
public static void append(ByteArrayOutputStream bas, byte[] bytes, int off, int len) {
750+
bas.write(bytes, off, len);
751+
}
752+
753+
@TruffleBoundary
754+
public static void append(ByteArrayOutputStream bas, byte[] bytes, int len) {
755+
append(bas, bytes, 0, len);
756+
}
757+
758+
@TruffleBoundary
759+
public static byte[] toByteArray(ByteArrayOutputStream bas) {
760+
return bas.toByteArray();
761+
}
762+
742763
@TruffleBoundary
743764
public static String createUTF8String(byte[] retbuf) {
744765
return new String(retbuf, StandardCharsets.UTF_8);
@@ -749,33 +770,11 @@ public static byte[] utf8StringToBytes(String str) {
749770
return str.getBytes(StandardCharsets.UTF_8);
750771
}
751772

752-
/*
753-
* corresponds to unicode_encode_utf8.
754-
*/
755-
@TruffleBoundary
756-
public static byte[] encodeUTF8(String str) throws CharacterCodingException {
757-
CodingErrorAction errorAction = CodingErrorAction.REPORT;
758-
Charset cs = StandardCharsets.UTF_8;
759-
ByteBuffer encoded = cs.newEncoder().onMalformedInput(errorAction).onUnmappableCharacter(errorAction).encode(CharBuffer.wrap(str));
760-
int n = encoded.remaining();
761-
byte[] data = new byte[n];
762-
encoded.get(data);
763-
return data;
764-
}
765-
766773
public static byte[] getBytes(PythonObjectLibrary lib, Object object) {
767774
try {
768775
return lib.getBufferBytes(object);
769776
} catch (UnsupportedMessageException e) {
770777
throw CompilerDirectives.shouldNotReachHere(e);
771778
}
772779
}
773-
774-
public static int getBytesLength(PythonObjectLibrary lib, Object object) {
775-
try {
776-
return lib.getBufferLength(object);
777-
} catch (UnsupportedMessageException e) {
778-
throw CompilerDirectives.shouldNotReachHere(e);
779-
}
780-
}
781780
}

0 commit comments

Comments
 (0)