[vmkit-commits] [vmkit] r101718 - /vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun Apr 18 05:13:17 PDT 2010
Author: geoffray
Date: Sun Apr 18 07:13:17 2010
New Revision: 101718
URL: http://llvm.org/viewvc/llvm-project?rev=101718&view=rev
Log:
Optimize on String::intern.
Modified:
vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
Modified: vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp?rev=101718&r1=101717&r2=101718&view=diff
==============================================================================
--- vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp (original)
+++ vmkit/trunk/lib/J3/Classpath/JavaUpcalls.cpp Sun Apr 18 07:13:17 2010
@@ -376,12 +376,16 @@
llvm_gcroot(obj, 0);
llvm_gcroot(array, 0);
llvm_gcroot(res, 0);
+ // If the string is already interned, just return.
+ if (obj->getVirtualTable() == JavaString::internStringVT) return obj;
BEGIN_NATIVE_EXCEPTION(0)
Jnjvm* vm = JavaThread::get()->getJVM();
array = obj->strToArray(vm);
res = vm->constructString(array);
+ assert(res->getVirtualTable() == JavaString::internStringVT &&
+ "Wrong VT after interning a string");
END_NATIVE_EXCEPTION
More information about the vmkit-commits
mailing list