aboutsummaryrefslogtreecommitdiff
path: root/unsafe
diff options
context:
space:
mode:
Diffstat (limited to 'unsafe')
-rw-r--r--unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java b/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java
index 213dc761bb..916825d007 100644
--- a/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java
+++ b/unsafe/src/main/java/org/apache/spark/unsafe/types/UTF8String.java
@@ -79,6 +79,17 @@ public final class UTF8String implements Comparable<UTF8String>, Serializable {
}
/**
+ * Creates an UTF8String from given address (base and offset) and length.
+ */
+ public static UTF8String fromAddress(Object base, long offset, int numBytes) {
+ if (base != null) {
+ return new UTF8String(base, offset, numBytes);
+ } else {
+ return null;
+ }
+ }
+
+ /**
* Creates an UTF8String from String.
*/
public static UTF8String fromString(String str) {
@@ -437,7 +448,7 @@ public final class UTF8String implements Comparable<UTF8String>, Serializable {
while (i < numBytes) {
int len = numBytesForFirstByte(getByte(i));
copyMemory(this.base, this.offset + i, result,
- BYTE_ARRAY_OFFSET + result.length - i - len, len);
+ BYTE_ARRAY_OFFSET + result.length - i - len, len);
i += len;
}