diff options
author | Elliott Hughes <enh@google.com> | 2011-06-17 15:59:16 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2011-06-17 16:46:08 -0700 |
commit | d8a3f9fa1951e552f5f65c2914689083cc0c46c2 (patch) | |
tree | e297eb5d43751f2e66ca2f143eed692e8fb1b2ba /vm/UtfString.cpp | |
parent | 837eabb829417c1542037423c55536649de404b8 (diff) | |
download | android_dalvik-d8a3f9fa1951e552f5f65c2914689083cc0c46c2.tar.gz android_dalvik-d8a3f9fa1951e552f5f65c2914689083cc0c46c2.tar.bz2 android_dalvik-d8a3f9fa1951e552f5f65c2914689083cc0c46c2.zip |
Make some of the StringObject functions member functions.
Change-Id: I72ed13c16f0cb24498772c453ba268a0f65f208a
Diffstat (limited to 'vm/UtfString.cpp')
-rw-r--r-- | vm/UtfString.cpp | 47 |
1 files changed, 13 insertions, 34 deletions
diff --git a/vm/UtfString.cpp b/vm/UtfString.cpp index 05bac533b..63d116eac 100644 --- a/vm/UtfString.cpp +++ b/vm/UtfString.cpp @@ -305,63 +305,42 @@ char* dvmCreateCstrFromString(const StringObject* jstr) return newStr; } -/* - * Create a UTF-8 C string from a region of a java/lang/String. (Used by - * the JNI GetStringUTFRegion call.) - */ -void dvmCreateCstrFromStringRegion(const StringObject* jstr, +void dvmGetStringUtfRegion(const StringObject* jstr, int start, int len, char* buf) { - const u2* data = dvmStringChars(jstr) + start; + const u2* data = jstr->chars() + start; convertUtf16ToUtf8(buf, data, len); } -/* - * Compute the length, in modified UTF-8, of a java/lang/String object. - * - * Does not include the terminating null byte. - */ -int dvmStringUtf8ByteLen(const StringObject* jstr) +int StringObject::utfLength() const { assert(gDvm.classJavaLangString != NULL); - if (jstr == NULL) { - return 0; // should we throw something? assert? - } - int len = dvmGetFieldInt(jstr, STRING_FIELDOFF_COUNT); - int offset = dvmGetFieldInt(jstr, STRING_FIELDOFF_OFFSET); + int len = dvmGetFieldInt(this, STRING_FIELDOFF_COUNT); + int offset = dvmGetFieldInt(this, STRING_FIELDOFF_OFFSET); ArrayObject* chars = - (ArrayObject*) dvmGetFieldObject(jstr, STRING_FIELDOFF_VALUE); + (ArrayObject*) dvmGetFieldObject(this, STRING_FIELDOFF_VALUE); const u2* data = (const u2*)(void*)chars->contents + offset; assert(offset + len <= (int) chars->length); return utf16_utf8ByteLen(data, len); } -/* - * Get the string's length. - */ -int dvmStringLen(const StringObject* jstr) +int StringObject::length() const { - return dvmGetFieldInt(jstr, STRING_FIELDOFF_COUNT); + return dvmGetFieldInt(this, STRING_FIELDOFF_COUNT); } -/* - * Get the char[] object from the String. - */ -ArrayObject* dvmStringCharArray(const StringObject* jstr) +ArrayObject* StringObject::array() const { - return (ArrayObject*) dvmGetFieldObject(jstr, STRING_FIELDOFF_VALUE); + return (ArrayObject*) dvmGetFieldObject(this, STRING_FIELDOFF_VALUE); } -/* - * Get the string's data. - */ -const u2* dvmStringChars(const StringObject* jstr) +const u2* StringObject::chars() const { - int offset = dvmGetFieldInt(jstr, STRING_FIELDOFF_OFFSET); + int offset = dvmGetFieldInt(this, STRING_FIELDOFF_OFFSET); ArrayObject* chars = - (ArrayObject*) dvmGetFieldObject(jstr, STRING_FIELDOFF_VALUE); + (ArrayObject*) dvmGetFieldObject(this, STRING_FIELDOFF_VALUE); return (const u2*)(void*)chars->contents + offset; } |