Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 64725 invoked from network); 15 Feb 2007 20:32:15 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 15 Feb 2007 20:32:15 -0000 Received: (qmail 97059 invoked by uid 500); 15 Feb 2007 20:32:22 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 97045 invoked by uid 500); 15 Feb 2007 20:32:22 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 97031 invoked by uid 99); 15 Feb 2007 20:32:22 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Feb 2007 12:32:22 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 15 Feb 2007 12:32:14 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id E5D8A1A981A; Thu, 15 Feb 2007 12:31:53 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r508131 - in /harmony/enhanced/drlvm/trunk/vm: include/open/vm.h jitrino/src/vm/drl/DrlVMInterface.cpp vmcore/src/class_support/C_Interface.cpp Date: Thu, 15 Feb 2007 20:31:53 -0000 To: commits@harmony.apache.org From: gshimansky@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070215203153.E5D8A1A981A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: gshimansky Date: Thu Feb 15 12:31:53 2007 New Revision: 508131 URL: http://svn.apache.org/viewvc?view=rev&rev=508131 Log: Applied HARMONY-3079 [dlrvm][classloader][opt] Opt does not handle exception raised by classloader (assertion fails classloader.cpp:1521) Tests passwd on Ubuntu6 x86, Windows XP x86 and SuSE9 x86_64 Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm.h harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlVMInterface.cpp harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm.h URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm.h?view=diff&rev=508131&r1=508130&r2=508131 ============================================================================== --- harmony/enhanced/drlvm/trunk/vm/include/open/vm.h (original) +++ harmony/enhanced/drlvm/trunk/vm/include/open/vm.h Thu Feb 15 12:31:53 2007 @@ -812,6 +812,15 @@ VMEXPORT Class_Handle type_info_get_class(Type_Info_Handle tih); /** + * Get the class if type_info_is_reference or + * type_info_is_unboxed returned TRUE. + * If the type info is a vector or a general array, return the + * class handle for the array type (not the element type). + * Does not leave any exception on stack. + */ +VMEXPORT Class_Handle type_info_get_class_no_exn(Type_Info_Handle tih); + +/** * Get the method signature if type_info_is_method_pointer * returned TRUE. */ Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlVMInterface.cpp URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlVMInterface.cpp?view=diff&rev=508131&r1=508130&r2=508131 ============================================================================== --- harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlVMInterface.cpp (original) +++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlVMInterface.cpp Thu Feb 15 12:31:53 2007 @@ -527,7 +527,7 @@ // void return type type = typeManager.getVoidType(); } else if (type_info_is_reference(typeHandle)) { - Class_Handle classHandle = type_info_get_class(typeHandle); + Class_Handle classHandle = type_info_get_class_no_exn(typeHandle); if (!classHandle) return NULL; type = typeManager.getObjectType(classHandle); Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp?view=diff&rev=508131&r1=508130&r2=508131 ============================================================================== --- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp (original) +++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp Thu Feb 15 12:31:53 2007 @@ -2031,6 +2031,12 @@ return c; } //type_info_get_class +Class_Handle type_info_get_class_no_exn(Type_Info_Handle tih) +{ + Class_Handle ch = type_info_get_class(tih); + exn_clear(); + return ch; +} // type_info_get_class_no_exn Method_Signature_Handle type_info_get_method_sig(Type_Info_Handle UNREF tih) {