[vmkit-commits] [vmkit] r83418 - in /vmkit/trunk/lib/N3/Mono: Mono.cpp MonoString.cpp MonoString.h

Gael Thomas gael.thomas at lip6.fr
Tue Oct 6 14:50:20 PDT 2009


Author: gthomas
Date: Tue Oct  6 16:50:20 2009
New Revision: 83418

URL: http://llvm.org/viewvc/llvm-project?rev=83418&view=rev
Log:
Adjust the mono version of n3 to use the new version of strings



Modified:
    vmkit/trunk/lib/N3/Mono/Mono.cpp
    vmkit/trunk/lib/N3/Mono/MonoString.cpp
    vmkit/trunk/lib/N3/Mono/MonoString.h

Modified: vmkit/trunk/lib/N3/Mono/Mono.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/Mono/Mono.cpp?rev=83418&r1=83417&r2=83418&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/Mono/Mono.cpp (original)
+++ vmkit/trunk/lib/N3/Mono/Mono.cpp Tue Oct  6 16:50:20 2009
@@ -168,7 +168,7 @@
 
 extern "C" void
 System_String_InternalCopyTo(MonoString* str, sint32 sindex, VMArray* dest, sint32 destIndex, sint32 count) {
-  const UTF8* contents = str->value;
+  const ArrayUInt16* contents = str->value;
   memcpy(&dest->elements[destIndex], &contents->elements[sindex], count * sizeof(uint16));
 }
 
@@ -280,11 +280,11 @@
 
 extern "C" void
 System_String__ctor(MonoString* str, ArrayUInt16* array, sint32 startIndex, sint32 count) {
-  VirtualMachine* vm = VMThread::get()->vm;
-  const UTF8* utf8 = vm->bufToUTF8(&(array->elements[startIndex]), count);
+  N3* vm = VMThread::get()->vm;
+  const ArrayUInt16* value = vm->bufToArray(&(array->elements[startIndex]), count);
   str->length = count;
   str->startChar = array->elements[startIndex];
-  str->value = utf8;
+  str->value = value;
 }
 
 extern "C" MonoString * 

Modified: vmkit/trunk/lib/N3/Mono/MonoString.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/Mono/MonoString.cpp?rev=83418&r1=83417&r2=83418&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/Mono/MonoString.cpp (original)
+++ vmkit/trunk/lib/N3/Mono/MonoString.cpp Tue Oct  6 16:50:20 2009
@@ -25,30 +25,26 @@
 using namespace llvm;
 
 
-CLIString* CLIString::stringDup(const UTF8*& utf8, N3* vm) {
+CLIString* CLIString::stringDup(const ArrayUInt16*& array, N3* vm) {
   MonoString* obj = (MonoString*)(*MSCorlib::pString)();
-  obj->length = utf8->size;
-  if (utf8->size == 0) {
+  obj->length = array->size;
+  if (array->size == 0) {
     obj->startChar = 0;
   } else {
-    obj->startChar = utf8->at(0);
+    obj->startChar = array->at(0);
   }
-  obj->value = utf8; 
+  obj->value = array; 
   return obj;
 }
 
-char* CLIString::strToAsciiz() {
-  return ((MonoString*)this)->value->UTF8ToAsciiz();
-}
-
-const UTF8* CLIString::strToUTF8(N3* vm) {
-  return ((MonoString*)this)->value;
+const ArrayUInt16* CLIString::strToArray(N3* vm) const {
+  return ((MonoString *)this)->value;
 }
 
 GlobalVariable* CLIString::llvmVar() {
   MonoString* str = (MonoString*)this;
   if (!str->_llvmVar) {
-    VirtualMachine* vm = VMThread::get()->vm;
+    N3* vm = VMThread::get()->vm;
     if (!str->_llvmVar) {
       const Type* pty = mvm::MvmModule::ptrType;
       Module* Mod = vm->getLLVMModule();

Modified: vmkit/trunk/lib/N3/Mono/MonoString.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/N3/Mono/MonoString.h?rev=83418&r1=83417&r2=83418&view=diff

==============================================================================
--- vmkit/trunk/lib/N3/Mono/MonoString.h (original)
+++ vmkit/trunk/lib/N3/Mono/MonoString.h Tue Oct  6 16:50:20 2009
@@ -27,7 +27,7 @@
   // !!! mono layout !!!
   sint32 length;
   uint8 startChar;
-  const UTF8* value;
+  const ArrayUInt16* value;
   llvm::GlobalVariable* _llvmVar;
 
 };





More information about the vmkit-commits mailing list