[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