[vmkit-commits] [vmkit] r58201 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.cpp JavaClass.h JnjvmModule.cpp JnjvmModule.h

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Oct 26 12:55:13 PDT 2008


Author: geoffray
Date: Sun Oct 26 14:55:12 2008
New Revision: 58201

URL: http://llvm.org/viewvc/llvm-project?rev=58201&view=rev
Log:
Move initialisation of a field in JavaField.



Modified:
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
    vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=58201&r1=58200&r2=58201&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Sun Oct 26 14:55:12 2008
@@ -619,12 +619,51 @@
   }
 }
 
+void JavaField::InitField(JavaObject* obj, uint64 val) {
+  
+  Typedef* type = getSignature();
+  if (!type->isPrimitive()) {
+    ((sint32*)((uint64)obj + ptrOffset))[0] = (sint32)val;
+    return;
+  }
+
+  PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
+  if (prim->isLong()) {
+    ((sint64*)((uint64)obj + ptrOffset))[0] = val;
+  } else if (prim->isInt()) {
+    ((sint32*)((uint64)obj + ptrOffset))[0] = (sint32)val;
+  } else if (prim->isChar()) {
+    ((uint16*)((uint64)obj + ptrOffset))[0] = (uint16)val;
+  } else if (prim->isShort()) {
+    ((sint16*)((uint64)obj + ptrOffset))[0] = (sint16)val;
+  } else if (prim->isByte()) {
+    ((sint8*)((uint64)obj + ptrOffset))[0] = (sint8)val;
+  } else if (prim->isBool()) {
+    ((uint8*)((uint64)obj + ptrOffset))[0] = (uint8)val;
+  } else {
+    // 0 value for everything else
+    ((sint32*)((uint64)obj + ptrOffset))[0] = (sint32)val;
+  }
+}
+
+void JavaField::InitField(JavaObject* obj, JavaObject* val) {
+  ((JavaObject**)((uint64)obj + ptrOffset))[0] = val;
+}
+
+void JavaField::InitField(JavaObject* obj, double val) {
+  ((double*)((uint64)obj + ptrOffset))[0] = val;
+}
+
+void JavaField::InitField(JavaObject* obj, float val) {
+  ((float*)((uint64)obj + ptrOffset))[0] = val;
+}
+
 void JavaField::initField(JavaObject* obj, Jnjvm* vm) {
   const Typedef* type = getSignature();
   Attribut* attribut = lookupAttribut(Attribut::constantAttribut);
 
   if (!attribut) {
-    JnjvmModule::InitField(this, obj);
+    InitField(obj);
   } else {
     Reader reader(attribut, classDef->bytes);
     JavaConstantPool * ctpInfo = classDef->ctpInfo;
@@ -632,18 +671,17 @@
     if (type->isPrimitive()) {
       UserCommonClass* cl = type->assocClass(vm->bootstrapLoader);
       if (cl == vm->upcalls->OfLong) {
-        JnjvmModule::InitField(this, obj, (uint64)ctpInfo->LongAt(idx));
+        InitField(obj, (uint64)ctpInfo->LongAt(idx));
       } else if (cl == vm->upcalls->OfDouble) {
-        JnjvmModule::InitField(this, obj, ctpInfo->DoubleAt(idx));
+        InitField(obj, ctpInfo->DoubleAt(idx));
       } else if (cl == vm->upcalls->OfFloat) {
-        JnjvmModule::InitField(this, obj, ctpInfo->FloatAt(idx));
+        InitField(obj, ctpInfo->FloatAt(idx));
       } else {
-        JnjvmModule::InitField(this, obj, (uint64)ctpInfo->IntegerAt(idx));
+        InitField(obj, (uint64)ctpInfo->IntegerAt(idx));
       }
     } else if (type->isReference()){
       const UTF8* utf8 = ctpInfo->UTF8At(ctpInfo->ctpDef[idx]);
-      JnjvmModule::InitField(this, obj,
-                         (JavaObject*)ctpInfo->resolveString(utf8, idx));
+      InitField(obj, (JavaObject*)ctpInfo->resolveString(utf8, idx));
     } else {
       JavaThread::get()->isolate->
         unknownError("unknown constant %s\n", type->printString());

Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h?rev=58201&r1=58200&r2=58201&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.h Sun Oct 26 14:55:12 2008
@@ -884,6 +884,14 @@
   /// _signature - The signature of the field. Null if not resolved.
   ///
   Typedef* _signature;
+  
+  /// InitField - Set an initial value to the field of an object.
+  ///
+  void InitField(JavaObject* obj, uint64 val = 0);
+  void InitField(JavaObject* obj, JavaObject* val);
+  void InitField(JavaObject* obj, double val);
+  void InitField(JavaObject* obj, float val);
+
 public:
 
   /// ~JavaField - Destroy the field as well as its attributs.

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp?rev=58201&r1=58200&r2=58201&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.cpp Sun Oct 26 14:55:12 2008
@@ -941,46 +941,6 @@
   LLVMAssessorInfo::initialise();
 }
 
-void JnjvmModule::InitField(JavaField* field, JavaObject* obj, uint64 val) {
-  
-  Typedef* type = field->getSignature();
-  if (!type->isPrimitive()) {
-    ((sint32*)((uint64)obj + field->ptrOffset))[0] = (sint32)val;
-    return;
-  }
-
-  PrimitiveTypedef* prim = (PrimitiveTypedef*)type;
-  if (prim->isLong()) {
-    ((sint64*)((uint64)obj + field->ptrOffset))[0] = val;
-  } else if (prim->isInt()) {
-    ((sint32*)((uint64)obj + field->ptrOffset))[0] = (sint32)val;
-  } else if (prim->isChar()) {
-    ((uint16*)((uint64)obj + field->ptrOffset))[0] = (uint16)val;
-  } else if (prim->isShort()) {
-    ((sint16*)((uint64)obj + field->ptrOffset))[0] = (sint16)val;
-  } else if (prim->isByte()) {
-    ((sint8*)((uint64)obj + field->ptrOffset))[0] = (sint8)val;
-  } else if (prim->isBool()) {
-    ((uint8*)((uint64)obj + field->ptrOffset))[0] = (uint8)val;
-  } else {
-    // 0 value for everything else
-    ((sint32*)((uint64)obj + field->ptrOffset))[0] = (sint32)val;
-  }
-}
-
-void 
-JnjvmModule::InitField(JavaField* field, JavaObject* obj, JavaObject* val) {
-  ((JavaObject**)((uint64)obj + field->ptrOffset))[0] = val;
-}
-
-void JnjvmModule::InitField(JavaField* field, JavaObject* obj, double val) {
-  ((double*)((uint64)obj + field->ptrOffset))[0] = val;
-}
-
-void JnjvmModule::InitField(JavaField* field, JavaObject* obj, float val) {
-  ((float*)((uint64)obj + field->ptrOffset))[0] = val;
-}
-
 void JnjvmModule::setMethod(JavaMethod* meth, const char* name) {
   llvm::Function* func = getMethodInfo(meth)->getMethod();
   func->setName(name);

Modified: vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h?rev=58201&r1=58200&r2=58201&view=diff

==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JnjvmModule.h Sun Oct 26 14:55:12 2008
@@ -338,13 +338,6 @@
   llvm::Function* OutOfMemoryErrorFunction;
   llvm::Function* NegativeArraySizeExceptionFunction;
 
-  static void InitField(JavaField* field);
-  static void InitField(JavaField* field, JavaObject* obj, uint64 val = 0);
-  static void InitField(JavaField* field, JavaObject* obj, JavaObject* val);
-  static void InitField(JavaField* field, JavaObject* obj, double val);
-  static void InitField(JavaField* field, JavaObject* obj, float val);
-
-
   static void resolveVirtualClass(Class* cl);
   static void resolveStaticClass(Class* cl);
   static void setMethod(JavaMethod* meth, const char* name);





More information about the vmkit-commits mailing list