[llvm-commits] CVS: llvm-java/lib/Compiler/VMClass.h VMClass.cpp Resolver.h Resolver.cpp Compiler.cpp

Alkis Evlogimenos alkis at cs.uiuc.edu
Sat Apr 2 00:18:31 PST 2005



Changes in directory llvm-java/lib/Compiler:

VMClass.h updated: 1.29 -> 1.30
VMClass.cpp updated: 1.39 -> 1.40
Resolver.h updated: 1.12 -> 1.13
Resolver.cpp updated: 1.15 -> 1.16
Compiler.cpp updated: 1.276 -> 1.277
---
Log message:

Differentiate between the class name and the class descriptor.


---
Diffs of the changes:  (+26 -18)

 Compiler.cpp |    5 +----
 Resolver.cpp |    3 +--
 Resolver.h   |    4 ++--
 VMClass.cpp  |   30 ++++++++++++++++++++----------
 VMClass.h    |    2 ++
 5 files changed, 26 insertions(+), 18 deletions(-)


Index: llvm-java/lib/Compiler/VMClass.h
diff -u llvm-java/lib/Compiler/VMClass.h:1.29 llvm-java/lib/Compiler/VMClass.h:1.30
--- llvm-java/lib/Compiler/VMClass.h:1.29	Fri Apr  1 21:06:35 2005
+++ llvm-java/lib/Compiler/VMClass.h	Sat Apr  2 02:18:20 2005
@@ -33,6 +33,7 @@
     static const int INVALID_INTERFACE_INDEX = -1;
 
     const std::string name_;
+    const std::string descriptor_;
     Resolver* resolver_;
     const ClassFile* classFile_;
     const VMClass* componentClass_;
@@ -86,6 +87,7 @@
 
   public:
     const std::string& getName() const { return name_; }
+    const std::string& getDescriptor() const { return descriptor_; }
     Resolver* getResolver() const { return resolver_; }
     const Type* getLayoutType() const { return layoutType_; }
     const Type* getType() const { return type_; }


Index: llvm-java/lib/Compiler/VMClass.cpp
diff -u llvm-java/lib/Compiler/VMClass.cpp:1.39 llvm-java/lib/Compiler/VMClass.cpp:1.40
--- llvm-java/lib/Compiler/VMClass.cpp:1.39	Fri Apr  1 21:06:35 2005
+++ llvm-java/lib/Compiler/VMClass.cpp	Sat Apr  2 02:18:20 2005
@@ -42,7 +42,8 @@
 }
 
 VMClass::VMClass(Resolver* resolver, const std::string& className)
-  : name_(Resolver::canonicalizeClassName(className)),
+  : name_(className),
+    descriptor_(Resolver::canonicalizeClassName(className)),
     resolver_(resolver),
     classFile_(ClassFile::get(className)),
     componentClass_(NULL),
@@ -55,7 +56,8 @@
 }
 
 VMClass::VMClass(Resolver* resolver, const VMClass* componentClass)
-  : name_('[' + componentClass->getName()),
+  : name_('[' + componentClass->getDescriptor()),
+    descriptor_(name_),
     resolver_(resolver),
     classFile_(NULL),
     componentClass_(componentClass),
@@ -67,14 +69,22 @@
 }
 
 VMClass::VMClass(Resolver* resolver, const Type* type)
-  : name_(type == Type::SByteTy  ? "B" :
-          type == Type::UShortTy ? "C" :
-          type == Type::DoubleTy ? "D" :
-          type == Type::FloatTy  ? "F" :
-          type == Type::IntTy    ? "I" :
-          type == Type::LongTy   ? "J" :
-          type == Type::ShortTy  ? "S" :
-          type == Type::BoolTy   ? "Z" : "V"),
+  : name_(type == Type::SByteTy  ? "byte" :
+          type == Type::UShortTy ? "char" :
+          type == Type::DoubleTy ? "double" :
+          type == Type::FloatTy  ? "float" :
+          type == Type::IntTy    ? "int" :
+          type == Type::LongTy   ? "long" :
+          type == Type::ShortTy  ? "short" :
+          type == Type::BoolTy   ? "boolean" : "void"),
+    descriptor_(type == Type::SByteTy  ? "B" :
+                type == Type::UShortTy ? "C" :
+                type == Type::DoubleTy ? "D" :
+                type == Type::FloatTy  ? "F" :
+                type == Type::IntTy    ? "I" :
+                type == Type::LongTy   ? "J" :
+                type == Type::ShortTy  ? "S" :
+                type == Type::BoolTy   ? "Z" : "V"),
     resolver_(resolver),
     classFile_(NULL),
     componentClass_(NULL),


Index: llvm-java/lib/Compiler/Resolver.h
diff -u llvm-java/lib/Compiler/Resolver.h:1.12 llvm-java/lib/Compiler/Resolver.h:1.13
--- llvm-java/lib/Compiler/Resolver.h:1.12	Thu Mar 31 01:56:28 2005
+++ llvm-java/lib/Compiler/Resolver.h	Sat Apr  2 02:18:20 2005
@@ -42,7 +42,7 @@
                               bool memberMethod = false) const;
 
     ClassMap::iterator insertClass(ClassMap::iterator i, const VMClass& clazz) {
-      return classMap_.insert(i, std::make_pair(clazz.getName(), clazz));
+      return classMap_.insert(i, std::make_pair(clazz.getDescriptor(), clazz));
     }
 
     friend class VMClass;
@@ -82,7 +82,7 @@
     const VMClass* getClass(JType type);
 
     const VMClass* getArrayClass(const VMClass* clazz) {
-      return getClassForDesc('[' + clazz->getName());
+      return getClassForDesc('[' + clazz->getDescriptor());
     }
 
     unsigned getNextInterfaceIndex() { return nextInterfaceIndex_++; }


Index: llvm-java/lib/Compiler/Resolver.cpp
diff -u llvm-java/lib/Compiler/Resolver.cpp:1.15 llvm-java/lib/Compiler/Resolver.cpp:1.16
--- llvm-java/lib/Compiler/Resolver.cpp:1.15	Fri Apr  1 21:06:35 2005
+++ llvm-java/lib/Compiler/Resolver.cpp	Sat Apr  2 02:18:20 2005
@@ -125,7 +125,6 @@
 {
   ClassMap::iterator it = classMap_.lower_bound(descriptor);
   if (it == classMap_.end() || it->first != descriptor) {
-    DEBUG(std::cerr << "Loading class: " << descriptor << '\n');
     switch (descriptor[0]) {
     case 'B':
       it = insertClass(it, VMClass(this, Type::SByteTy));
@@ -172,7 +171,7 @@
     it->second.link();
     if (!it->second.isPrimitive() && !it->second.isInterface())
       module_->addTypeName("struct." + descriptor, it->second.getLayoutType());
-    DEBUG(std::cerr << "Loaded class: " << descriptor);
+    DEBUG(std::cerr << "Loaded class: " << it->second.getName());
     DEBUG(std::cerr << " (" << it->second.getInterfaceIndex() << ")\n");
   }
 


Index: llvm-java/lib/Compiler/Compiler.cpp
diff -u llvm-java/lib/Compiler/Compiler.cpp:1.276 llvm-java/lib/Compiler/Compiler.cpp:1.277
--- llvm-java/lib/Compiler/Compiler.cpp:1.276	Fri Apr  1 21:06:35 2005
+++ llvm-java/lib/Compiler/Compiler.cpp	Sat Apr  2 02:18:20 2005
@@ -259,9 +259,6 @@
         return;
       }
 
-      const std::string& className =
-        class_->getClassFile()->getThisClass()->getName()->str();
-
       if (method->isNative()) {
         DEBUG(std::cerr << "Adding stub for natively implemented method: "
               << function->getName() << '\n');
@@ -270,7 +267,7 @@
 
         std::string funcName =
           "Java_" +
-          getMangledString(className) + '_' +
+          getMangledString(class_->getName()) + '_' +
           getMangledString(method->getName());
         if (class_->getClassFile()->isNativeMethodOverloaded(*method->getMethod())) {
           // We need to add two underscores and a mangled argument signature






More information about the llvm-commits mailing list