aboutsummaryrefslogtreecommitdiff
path: root/vm/native/java_lang_String.cpp
diff options
context:
space:
mode:
authorCarl Shapiro <cshapiro@google.com>2011-04-12 19:14:06 -0700
committerCarl Shapiro <cshapiro@google.com>2011-04-12 19:14:06 -0700
commitdb0c9549818d9f6e508d26e45ff9d886802aa1da (patch)
treec03b73dd265520edf1d71c003ad6e689cc2240f8 /vm/native/java_lang_String.cpp
parenta584c50f374d8ba60f306772ff9cc4c46fb5ecf8 (diff)
Convert the internal and in-line natives to C++.
Change-Id: I2ece682bc3b4d3b55ab27c60fd84a0b3243d7ca6
Diffstat (limited to 'vm/native/java_lang_String.cpp')
-rw-r--r--vm/native/java_lang_String.cpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/vm/native/java_lang_String.cpp b/vm/native/java_lang_String.cpp
new file mode 100644
index 000000000..38f9e3161
--- /dev/null
+++ b/vm/native/java_lang_String.cpp
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2008 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/*
+ * java.lang.String
+ */
+#include "Dalvik.h"
+#include "native/InternalNativePriv.h"
+
+static void String_charAt(const u4* args, JValue* pResult)
+{
+ MAKE_INTRINSIC_TRAMPOLINE(javaLangString_charAt);
+}
+
+static void String_compareTo(const u4* args, JValue* pResult)
+{
+ MAKE_INTRINSIC_TRAMPOLINE(javaLangString_compareTo);
+}
+
+static void String_equals(const u4* args, JValue* pResult)
+{
+ MAKE_INTRINSIC_TRAMPOLINE(javaLangString_equals);
+}
+
+static void String_fastIndexOf(const u4* args, JValue* pResult)
+{
+ MAKE_INTRINSIC_TRAMPOLINE(javaLangString_fastIndexOf_II);
+}
+
+static void String_intern(const u4* args, JValue* pResult)
+{
+ StringObject* str = (StringObject*) args[0];
+ StringObject* interned = dvmLookupInternedString(str);
+ RETURN_PTR(interned);
+}
+
+static void String_isEmpty(const u4* args, JValue* pResult)
+{
+ MAKE_INTRINSIC_TRAMPOLINE(javaLangString_isEmpty);
+}
+
+static void String_length(const u4* args, JValue* pResult)
+{
+ MAKE_INTRINSIC_TRAMPOLINE(javaLangString_length);
+}
+
+const DalvikNativeMethod dvm_java_lang_String[] = {
+ { "charAt", "(I)C", String_charAt },
+ { "compareTo", "(Ljava/lang/String;)I", String_compareTo },
+ { "equals", "(Ljava/lang/Object;)Z", String_equals },
+ { "fastIndexOf", "(II)I", String_fastIndexOf },
+ { "intern", "()Ljava/lang/String;", String_intern },
+ { "isEmpty", "()Z", String_isEmpty },
+ { "length", "()I", String_length },
+ { NULL, NULL, NULL },
+};