From cd53e4023e641e2ee4293fd8ef4b15e4f662d8ff Mon Sep 17 00:00:00 2001 From: Artur Ventura Date: Thu, 17 Nov 2011 03:09:48 +0000 Subject: [PATCH] INVOKESTATIC correction --- src/intrp.def | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/intrp.def b/src/intrp.def index b43ac60..499ff71 100644 --- a/src/intrp.def +++ b/src/intrp.def @@ -940,9 +940,9 @@ DEFOP(INVOKESTATIC) LOG("Calling " + className + " " + method.name_ref.str + method.descriptor_ref.str) LOG("!! NATIVE !!") if (xl.jvm.internalJNITable[className] && methodId in xl.jvm.internalJNITable[className]){ - result = xl.jvm.internalJNITable[className][methodId].apply(cl,args); + result = {return_object: xl.jvm.internalJNITable[className][methodId].apply(cl,args)}; }else if (xl.jvm.JNITable[className] && methodId in xl.jvm.JNITable[className]){ - result = xl.jvm.JNITable[className][methodId].apply(cl,args) + result = {return_object: xl.jvm.JNITable[className][methodId].apply(cl,args)};s }else{ PANIC(methodId + " declared as native but not mapped"); } @@ -950,8 +950,8 @@ DEFOP(INVOKESTATIC) }else{ result = method.invoke(args,cl); } - if (result != undefined){ - OPPUSH(result); + if (result != undefined && result.return_object!= undefined){ + OPPUSH(result.return_object); } ENDDEF