[vmkit-commits] [vmkit] r198317 - Allow a J3Method to belong to a J3ArrayClass
Gael Thomas
gael.thomas at lip6.fr
Thu Jan 2 08:57:12 PST 2014
Author: gthomas
Date: Thu Jan 2 10:57:12 2014
New Revision: 198317
URL: http://llvm.org/viewvc/llvm-project?rev=198317&view=rev
Log:
Allow a J3Method to belong to a J3ArrayClass
Modified:
vmkit/branches/mcjit/include/j3/j3.h
vmkit/branches/mcjit/include/j3/j3classloader.h
vmkit/branches/mcjit/include/j3/j3constants.h
vmkit/branches/mcjit/include/j3/j3mangler.h
vmkit/branches/mcjit/include/j3/j3method.h
vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
vmkit/branches/mcjit/lib/j3/vm/j3.cc
vmkit/branches/mcjit/lib/j3/vm/j3class.cc
vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
vmkit/branches/mcjit/lib/j3/vm/j3codegenvar.cc
vmkit/branches/mcjit/lib/j3/vm/j3constants.cc
vmkit/branches/mcjit/lib/j3/vm/j3mangler.cc
vmkit/branches/mcjit/lib/j3/vm/j3method.cc
vmkit/branches/mcjit/lib/j3/vm/j3options.cc
Modified: vmkit/branches/mcjit/include/j3/j3.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3.h?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3.h (original)
+++ vmkit/branches/mcjit/include/j3/j3.h Thu Jan 2 10:57:12 2014
@@ -130,11 +130,11 @@ namespace j3 {
static void classNotFoundException(const vmkit::Name* name) __attribute__((noreturn));
static void noClassDefFoundError(const vmkit::Name* name) __attribute__((noreturn));
- static void classFormatError(J3Class* cl, const char* reason, ...) __attribute__((noreturn));
+ static void classFormatError(J3ObjectType* cl, const char* reason, ...) __attribute__((noreturn));
static void noSuchMethodError(const char* msg,
- J3Class* clName, const vmkit::Name* name, const vmkit::Name* sign) __attribute__((noreturn));
+ J3ObjectType* clName, const vmkit::Name* name, const vmkit::Name* sign) __attribute__((noreturn));
static void noSuchFieldError(const char* msg,
- J3Class* clName, const vmkit::Name* name, J3Type* type) __attribute__((noreturn));
+ J3ObjectType* clName, const vmkit::Name* name, J3Type* type) __attribute__((noreturn));
static void linkageError(J3Method* method) __attribute__((noreturn));
static void nullPointerException() __attribute__((noreturn));
Modified: vmkit/branches/mcjit/include/j3/j3classloader.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3classloader.h?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3classloader.h (original)
+++ vmkit/branches/mcjit/include/j3/j3classloader.h Thu Jan 2 10:57:12 2014
@@ -21,6 +21,7 @@ namespace j3 {
class J3Method;
class J3Type;
class J3;
+ class J3ObjectType;
class J3Class;
class J3ClassLoader : public vmkit::CompilationUnit {
@@ -59,8 +60,8 @@ namespace j3 {
pthread_mutex_t _mutexMethods;
MethodRefMap methods; /* all te known method */
- void wrongType(J3Class* from, const vmkit::Name* type);
- J3Type* getTypeInternal(J3Class* from, const vmkit::Name* type, uint32_t start, uint32_t* end);
+ void wrongType(J3ObjectType* from, const vmkit::Name* type);
+ J3Type* getTypeInternal(J3ObjectType* from, const vmkit::Name* type, uint32_t start, uint32_t* end);
protected:
std::vector<void*, vmkit::StdAllocator<void*> > nativeLibraries;
@@ -76,17 +77,15 @@ namespace j3 {
J3* vm() const { return (J3*)vmkit::CompilationUnit::vm(); };
- J3Method* method(uint16_t access, J3Class* cl,
+ J3Method* method(uint16_t access, J3ObjectType* cl,
const vmkit::Name* name, const vmkit::Name* sign);
- J3Method* method(uint16_t access, const vmkit::Name* clName,
- const vmkit::Name* name, const vmkit::Name* sign);
J3Class* defineClass(const vmkit::Name* name, J3ClassBytes* bytes);
J3Class* findLoadedClass(const vmkit::Name* name);
virtual J3Class* loadClass(const vmkit::Name* name);
J3Type* getType(J3Class* from, const vmkit::Name* type); /* find a type */
- J3MethodType* getMethodType(J3Class* from, const vmkit::Name* sign); /* get a method type */
+ J3MethodType* getMethodType(J3ObjectType* from, const vmkit::Name* sign); /* get a method type */
void* lookupNativeFunctionPointer(J3Method* method, const char* symb);
};
Modified: vmkit/branches/mcjit/include/j3/j3constants.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3constants.h?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3constants.h (original)
+++ vmkit/branches/mcjit/include/j3/j3constants.h Thu Jan 2 10:57:12 2014
@@ -107,7 +107,7 @@ namespace j3 {
return ((value - 1) & (-bound)) + bound;
}
- static const vmkit::Name* rewrite(J3* vm, const vmkit::Name* clName, const vmkit::Name* orig);
+ static const vmkit::Name* rewrite(J3ObjectType* cl, const vmkit::Name* orig);
#define defOpcode(ID, val, effect) \
static const uint8_t BC_##ID = val;
Modified: vmkit/branches/mcjit/include/j3/j3mangler.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3mangler.h?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3mangler.h (original)
+++ vmkit/branches/mcjit/include/j3/j3mangler.h Thu Jan 2 10:57:12 2014
@@ -8,24 +8,24 @@ namespace vmkit {
}
namespace j3 {
- class J3Class;
+ class J3ObjectType;
class J3Method;
class J3Mangler {
static const uint32_t max = 65536;
- J3Class* from;
- char buf[max];
- char* cur;
- char* next;
+ J3ObjectType* from;
+ char buf[max];
+ char* cur;
+ char* next;
- void check(uint32_t n);
+ void check(uint32_t n);
public:
static const char* j3Id;
static const char* javaId;
- J3Mangler(J3Class* from);
+ J3Mangler(J3ObjectType* from);
char* cStr() { return buf; }
uint32_t length() { return cur - buf; }
Modified: vmkit/branches/mcjit/include/j3/j3method.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/include/j3/j3method.h?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/include/j3/j3method.h (original)
+++ vmkit/branches/mcjit/include/j3/j3method.h Thu Jan 2 10:57:12 2014
@@ -19,6 +19,7 @@ namespace j3 {
class J3LLVMSignature;
class J3Type;
class J3Attributes;
+ class J3ObjectType;
class J3Class;
class J3Method;
class J3Value;
@@ -57,7 +58,7 @@ namespace j3 {
public:
J3MethodCode _selfCode;
uint16_t _access;
- J3Class* _cl;
+ J3ObjectType* _cl;
const vmkit::Name* _name;
const vmkit::Name* _sign;
J3MethodType* _methodType;
@@ -75,9 +76,9 @@ namespace j3 {
J3Value internalInvoke(bool statically, J3ObjectHandle* handle, va_list va);
J3Value internalInvoke(bool statically, J3ObjectHandle* handle, J3Value* args);
J3Value internalInvoke(bool statically, J3Value* args);
- void buildLLVMNames(J3Class* from);
+ void buildLLVMNames(J3ObjectType* from);
public:
- J3Method(uint16_t access, J3Class* cl, const vmkit::Name* name, const vmkit::Name* sign);
+ J3Method(uint16_t access, J3ObjectType* cl, const vmkit::Name* name, const vmkit::Name* sign);
uint32_t slot() { return _slot; }
@@ -107,10 +108,10 @@ namespace j3 {
J3Attributes* attributes() const { return _attributes; }
uint16_t access() const { return _access; }
- J3Class* cl() const { return _cl; }
+ J3ObjectType* cl() const { return _cl; }
const vmkit::Name* name() const { return _name; }
const vmkit::Name* sign() const { return _sign; }
- J3MethodType* methodType(J3Class* from=0);
+ J3MethodType* methodType(J3ObjectType* from=0);
void registerNative(void* ptr);
Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc Thu Jan 2 10:57:12 2014
@@ -23,35 +23,35 @@ static const char* rtjar = OPENJDK_HOME"
void J3Lib::bootstrap(J3* vm) {
J3ObjectHandle* prev = J3Thread::get()->tell();
- J3Class* threadGroupClass = vm->initialClassLoader->loadClass(vm->names()->get("java/lang/ThreadGroup"));
- J3Method* sysThreadGroupInit = vm->initialClassLoader->method(0,
- threadGroupClass,
- vm->initName,
- vm->names()->get("()V"));
- J3ObjectHandle* sysThreadGroup = J3ObjectHandle::doNewObject(sysThreadGroupInit->cl());
+ J3Class* threadGroupClass = vm->initialClassLoader->loadClass(vm->names()->get("java/lang/ThreadGroup"));
+ J3Method* sysThreadGroupInit = vm->initialClassLoader->method(0,
+ threadGroupClass,
+ vm->initName,
+ vm->names()->get("()V"));
+ J3ObjectHandle* sysThreadGroup = J3ObjectHandle::doNewObject(threadGroupClass);
sysThreadGroupInit->invokeSpecial(sysThreadGroup);
- J3Method* appThreadGroupInit = vm->initialClassLoader->method(0,
- threadGroupClass,
- vm->initName,
- vm->names()->get("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
- J3ObjectHandle* appThreadGroup = J3ObjectHandle::doNewObject(appThreadGroupInit->cl());
+ J3Method* appThreadGroupInit = vm->initialClassLoader->method(0,
+ threadGroupClass,
+ vm->initName,
+ vm->names()->get("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
+ J3ObjectHandle* appThreadGroup = J3ObjectHandle::doNewObject(threadGroupClass);
appThreadGroupInit->invokeSpecial(appThreadGroup, sysThreadGroup, vm->utfToString("main"));
- J3Method* threadInit = vm->initialClassLoader->method(0,
- vm->threadClass,
- vm->initName,
- vm->names()->get("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
- J3ObjectHandle* mainThread = J3ObjectHandle::doNewObject(threadInit->cl());
+ J3Method* threadInit = vm->initialClassLoader->method(0,
+ vm->threadClass,
+ vm->initName,
+ vm->names()->get("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
+ J3ObjectHandle* mainThread = J3ObjectHandle::doNewObject(vm->threadClass);
J3Thread::get()->assocJavaThread(mainThread);
- mainThread->setInteger(threadInit->cl()->findVirtualField(vm->names()->get("priority"), vm->typeInteger), 5);
+ mainThread->setInteger(vm->threadClass->findVirtualField(vm->names()->get("priority"), vm->typeInteger), 5);
threadInit->invokeSpecial(mainThread, appThreadGroup, vm->utfToString("main"));
vm->initialClassLoader->method(J3Cst::ACC_STATIC,
- vm->names()->get("java/lang/System"),
+ vm->initialClassLoader->loadClass(vm->names()->get("java/lang/System")),
vm->names()->get("initializeSystemClass"),
vm->names()->get("()V"))->invokeStatic();
Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Thu Jan 2 10:57:12 2014
@@ -204,15 +204,15 @@ void J3::noClassDefFoundError(const vmki
internalError("NoClassDefFoundError: %s", name);
}
-void J3::noSuchMethodError(const char* msg, J3Class* cl, const vmkit::Name* name, const vmkit::Name* sign) {
+void J3::noSuchMethodError(const char* msg, J3ObjectType* cl, const vmkit::Name* name, const vmkit::Name* sign) {
internalError("%s: %s::%s %s", msg, cl->name()->cStr(), name->cStr(), sign->cStr());
}
-void J3::noSuchFieldError(const char* msg, J3Class* cl, const vmkit::Name* name, J3Type* type) {
+void J3::noSuchFieldError(const char* msg, J3ObjectType* cl, const vmkit::Name* name, J3Type* type) {
internalError("%s: %s::%s %s", msg, cl->name()->cStr(), name->cStr(), type->name()->cStr());
}
-void J3::classFormatError(J3Class* cl, const char* reason, ...) {
+void J3::classFormatError(J3ObjectType* cl, const char* reason, ...) {
char buf[65536];
va_list va;
va_start(va, reason);
Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Thu Jan 2 10:57:12 2014
@@ -730,7 +730,7 @@ J3Method* J3Class::interfaceOrMethodAt(u
}
uint16_t ntIdx = ctpValues[idx] & 0xffff;
- J3Class* cl = classAt(ctpValues[idx] >> 16)->asClass();
+ J3ObjectType* cl = classAt(ctpValues[idx] >> 16);
check(ntIdx, J3Cst::CONSTANT_NameAndType);
const vmkit::Name* name = nameAt(ctpValues[ntIdx] >> 16);
Modified: vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3classloader.cc Thu Jan 2 10:57:12 2014
@@ -87,11 +87,11 @@ J3Class* J3ClassLoader::loadClass(const
J3::internalError("implement me: loadClass from a Java class loader");
}
-void J3ClassLoader::wrongType(J3Class* from, const vmkit::Name* type) {
+void J3ClassLoader::wrongType(J3ObjectType* from, const vmkit::Name* type) {
J3::classFormatError(from, "wrong type: %s", type->cStr());
}
-J3Type* J3ClassLoader::getTypeInternal(J3Class* from, const vmkit::Name* typeName, uint32_t start, uint32_t* pend) {
+J3Type* J3ClassLoader::getTypeInternal(J3ObjectType* from, const vmkit::Name* typeName, uint32_t start, uint32_t* pend) {
J3Type* res = 0;
const char* type = typeName->cStr();
uint32_t len = typeName->length();
@@ -168,7 +168,7 @@ J3Type* J3ClassLoader::getType(J3Class*
return res;
}
-J3MethodType* J3ClassLoader::getMethodType(J3Class* from, const vmkit::Name* sign) {
+J3MethodType* J3ClassLoader::getMethodType(J3ObjectType* from, const vmkit::Name* sign) {
pthread_mutex_lock(&_mutexMethodTypes);
J3MethodType* res = methodTypes[sign];
pthread_mutex_unlock(&_mutexMethodTypes);
@@ -200,7 +200,7 @@ J3MethodType* J3ClassLoader::getMethodTy
return res;
}
-J3Method* J3ClassLoader::method(uint16_t access, J3Class* cl, const vmkit::Name* name, const vmkit::Name* sign) {
+J3Method* J3ClassLoader::method(uint16_t access, J3ObjectType* cl, const vmkit::Name* name, const vmkit::Name* sign) {
J3Method method(access, cl, name, sign), *res;
pthread_mutex_lock(&_mutexMethods);
@@ -217,10 +217,6 @@ J3Method* J3ClassLoader::method(uint16_t
return res;
}
-J3Method* J3ClassLoader::method(uint16_t access, const vmkit::Name* clName, const vmkit::Name* name, const vmkit::Name* sign) {
- return method(access, loadClass(clName), name, sign);
-}
-
bool J3ClassLoader::J3InterfaceMethodLess::operator()(j3::J3Method const* lhs, j3::J3Method const* rhs) const {
return lhs->name() < rhs->name()
|| (lhs->name() == rhs->name()
Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Thu Jan 2 10:57:12 2014
@@ -34,7 +34,7 @@ J3CodeGen::J3CodeGen(vmkit::BumpAllocato
allocator = _allocator;
method = m;
- cl = method->cl();
+ cl = method->cl()->asClass();
methodType = method->methodType();
loader = cl->loader();
vm = loader->vm();
Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegenvar.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegenvar.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegenvar.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegenvar.cc Thu Jan 2 10:57:12 2014
@@ -1,5 +1,6 @@
#include "j3/j3codegenvar.h"
#include "j3/j3codegen.h"
+#include "j3/j3class.h"
#include "j3/j3.h"
#include "j3/j3classloader.h"
Modified: vmkit/branches/mcjit/lib/j3/vm/j3constants.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3constants.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3constants.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3constants.cc Thu Jan 2 10:57:12 2014
@@ -10,17 +10,26 @@ using namespace j3;
char J3Cst::nativePrefix[] = "Java_";
-const vmkit::Name* J3Cst::rewrite(J3* vm, const vmkit::Name* clName, const vmkit::Name* orig) {
+const vmkit::Name* J3Cst::rewrite(J3ObjectType* cl, const vmkit::Name* orig) {
+ const vmkit::Name* clName = cl->name();
char res[clName->length() + orig->length() + 3];
+ uint32_t d;
res[0] = ID_Left;
- res[1] = ID_Classname;
- memcpy(res+2, clName->cStr(), sizeof(char)*clName->length());
- res[2 + clName->length()] = ID_End;
- memcpy(res+3+clName->length(), orig->cStr()+1, sizeof(char)*(orig->length()-1));
- res[2 + clName->length() + orig->length()] = 0;
+ if(cl->isClass()) {
+ res[1] = ID_Classname;
+ memcpy(res+2, clName->cStr(), sizeof(char)*clName->length());
+ res[2 + clName->length()] = ID_End;
+ d = 2;
+ } else {
+ memcpy(res+1, clName->cStr(), sizeof(char)*clName->length());
+ d = 0;
+ }
- return vm->names()->get(res);
+ memcpy(res+1+d+clName->length(), orig->cStr()+1, sizeof(char)*(orig->length()-1));
+ res[d + clName->length() + orig->length()] = 0;
+
+ return cl->loader()->vm()->names()->get(res);
}
#define defOpcode(ID, val, effect) \
Modified: vmkit/branches/mcjit/lib/j3/vm/j3mangler.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3mangler.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3mangler.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3mangler.cc Thu Jan 2 10:57:12 2014
@@ -11,7 +11,7 @@ const char* J3Mangler::j3Id = "j3_";
const char* J3Mangler::javaId = "Java_";
-J3Mangler::J3Mangler(J3Class* _from) {
+J3Mangler::J3Mangler(J3ObjectType* _from) {
from = _from;
cur = buf;
}
Modified: vmkit/branches/mcjit/lib/j3/vm/j3method.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3method.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Thu Jan 2 10:57:12 2014
@@ -29,7 +29,7 @@ J3MethodType::J3MethodType(J3Type** args
}
-J3Method::J3Method(uint16_t access, J3Class* cl, const vmkit::Name* name, const vmkit::Name* sign) :
+J3Method::J3Method(uint16_t access, J3ObjectType* cl, const vmkit::Name* name, const vmkit::Name* sign) :
_selfCode(this) {
_access = access;
_cl = cl;
@@ -225,13 +225,13 @@ J3Value J3Method::invokeVirtual(J3Object
return res;
}
-J3MethodType* J3Method::methodType(J3Class* from) {
+J3MethodType* J3Method::methodType(J3ObjectType* from) {
if(!_methodType) {
const vmkit::Name* realSign = sign();
J3ClassLoader* loader = cl()->loader();
if(!J3Cst::isStatic(access()))
- realSign = J3Cst::rewrite(loader->vm(), cl()->name(), sign());
+ realSign = J3Cst::rewrite(cl(), sign());
_methodType = loader->getMethodType(from ? from : cl(), realSign);
}
@@ -239,7 +239,7 @@ J3MethodType* J3Method::methodType(J3Cla
return _methodType;
}
-void J3Method::buildLLVMNames(J3Class* from) {
+void J3Method::buildLLVMNames(J3ObjectType* from) {
const char* prefix = "stub_";
uint32_t plen = 5;
J3Mangler mangler(from);
@@ -304,8 +304,8 @@ J3ObjectHandle* J3Method::javaMethod() {
else
exceptions = J3ObjectHandle::doNewArray(vm->classClass->getArray(), 0);
- J3ObjectHandle* annotations = cl()->extractAttribute(attributes()->lookup(vm->annotationsAttribute));
- J3ObjectHandle* paramAnnotations = cl()->extractAttribute(attributes()->lookup(vm->paramAnnotationsAttribute));
+ J3ObjectHandle* annotations = cl()->asClass()->extractAttribute(attributes()->lookup(vm->annotationsAttribute));
+ J3ObjectHandle* paramAnnotations = cl()->asClass()->extractAttribute(attributes()->lookup(vm->paramAnnotationsAttribute));
if(name() == cl()->loader()->vm()->initName) {
_javaMethod = cl()->loader()->globalReferences()->add(J3ObjectHandle::doNewObject(vm->constructorClass));
Modified: vmkit/branches/mcjit/lib/j3/vm/j3options.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3options.cc?rev=198317&r1=198316&r2=198317&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3options.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3options.cc Thu Jan 2 10:57:12 2014
@@ -15,11 +15,11 @@ J3Options::J3Options() {
debugEnterIndent = 1;
- debugExecute = 0;
+ debugExecute = 2;
debugLoad = 0;
debugResolve = 0;
debugIniting = 0;
- debugTranslate = 0;
+ debugTranslate = 2;
debugLinking = 0;
genDebugExecute = debugExecute ? 1 : 0;
More information about the vmkit-commits
mailing list