Return-Path: Delivered-To: apmail-commons-commits-archive@minotaur.apache.org Received: (qmail 92804 invoked from network); 1 Jul 2009 11:58:52 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 1 Jul 2009 11:58:52 -0000 Received: (qmail 68529 invoked by uid 500); 1 Jul 2009 11:59:02 -0000 Delivered-To: apmail-commons-commits-archive@commons.apache.org Received: (qmail 68438 invoked by uid 500); 1 Jul 2009 11:59:02 -0000 Mailing-List: contact commits-help@commons.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@commons.apache.org Delivered-To: mailing list commits@commons.apache.org Received: (qmail 68429 invoked by uid 99); 1 Jul 2009 11:59:02 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jul 2009 11:59:02 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 01 Jul 2009 11:58:59 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 2773323888E3; Wed, 1 Jul 2009 11:58:38 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r790132 - in /commons/sandbox/runtime/trunk/src/main/native: include/acr_private.h shared/object.c Date: Wed, 01 Jul 2009 11:58:38 -0000 To: commits@commons.apache.org From: mturk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090701115838.2773323888E3@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: mturk Date: Wed Jul 1 11:58:37 2009 New Revision: 790132 URL: http://svn.apache.org/viewvc?rev=790132&view=rev Log: Check for object null before the call Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr_private.h commons/sandbox/runtime/trunk/src/main/native/shared/object.c Modified: commons/sandbox/runtime/trunk/src/main/native/include/acr_private.h URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/include/acr_private.h?rev=790132&r1=790131&r2=790132&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/include/acr_private.h (original) +++ commons/sandbox/runtime/trunk/src/main/native/include/acr_private.h Wed Jul 1 11:58:37 2009 @@ -457,17 +457,22 @@ #endif /* CC_SIZEOF_VOIDP == 8 */ -#define CALL_METHOD1(I, O, V) \ +#define CALL_VMETHOD0(I, O) \ + if (_m##I##n.i) { \ + (*_E)->CallVoidMethod(_E, (O), _m##I##n.i); \ + } else (void)(0) + +#define CALL_VMETHOD1(I, O, V) \ if (_m##I##n.i) { \ (*_E)->CallVoidMethod(_E, (O), _m##I##n.i, (V)); \ } else (void)(0) -#define CALL_METHOD2(I, O, V, X) \ +#define CALL_VMETHOD2(I, O, V, X) \ if (_m##I##n.i) { \ (*_E)->CallVoidMethod(_E, (O), _m##I##n.i, (V), (X)); \ } else (void)(0) -#define CALL_METHOD3(I, O, V, X, Y) \ +#define CALL_VMETHOD3(I, O, V, X, Y) \ if (_m##I##n.i) { \ (*_E)->CallVoidMethod(_E, (O), _m##I##n.i, (V), (X), (Y)); \ } else (void)(0) @@ -475,8 +480,8 @@ #define CALL_METHOD0(T, I, O) \ (*_E)->Call##T##Method(_E, (O), _m##I##n.i) -#define CALL_METHODN(T, I, O, ARGS) \ - (*_E)->Call##T##Method(_E, (O), _m##I##n.i, ARGS) +#define CALL_METHOD1(T, I, O, V) \ + (*_E)->Call##T##Method(_E, (O), _m##I##n.i, (V)) #define SET_SARRAY_A(A, I, V) \ if ((A) && (V)) { \ Modified: commons/sandbox/runtime/trunk/src/main/native/shared/object.c URL: http://svn.apache.org/viewvc/commons/sandbox/runtime/trunk/src/main/native/shared/object.c?rev=790132&r1=790131&r2=790132&view=diff ============================================================================== --- commons/sandbox/runtime/trunk/src/main/native/shared/object.c (original) +++ commons/sandbox/runtime/trunk/src/main/native/shared/object.c Wed Jul 1 11:58:37 2009 @@ -96,8 +96,10 @@ { int rc = ACR_ECLASSNOTFOUND; + if (IS_JOBJECT_NULL(_E, _O)) + return ACR_EINVAL; if (_clazzn.i && J4MID(0000)) { - CALL_METHOD0(Void, 0001, _O); + CALL_VMETHOD0(0001, _O); if ((*_E)->ExceptionCheck(_E)) { (*_E)->ExceptionClear(_E); rc = ACR_EBUSY; @@ -112,8 +114,10 @@ { int rc = ACR_ECLASSNOTFOUND; + if (IS_JOBJECT_NULL(_E, _O)) + return ACR_EINVAL; if (_clazzn.i && J4MID(0000)) { - CALL_METHOD0(Void, 0002, _O); + CALL_VMETHOD0(0002, _O); if ((*_E)->ExceptionCheck(_E)) { (*_E)->ExceptionClear(_E); rc = ACR_EBUSY; @@ -128,8 +132,10 @@ { int rc = ACR_ECLASSNOTFOUND; + if (IS_JOBJECT_NULL(_E, _O)) + return ACR_EINVAL; if (_clazzn.i && J4MID(0000)) { - CALL_METHOD0(Void, 0005, _O); + CALL_VMETHOD0(0005, _O); if ((*_E)->ExceptionCheck(_E)) { (*_E)->ExceptionClear(_E); rc = ACR_TIMEUP; @@ -144,8 +150,10 @@ { int rc = ACR_ECLASSNOTFOUND; + if (IS_JOBJECT_NULL(_E, _O)) + return ACR_EINVAL; if (_clazzn.i && J4MID(0000)) { - CALL_METHOD1(0003, _O, ms); + CALL_VMETHOD1(0003, _O, ms); if ((*_E)->ExceptionCheck(_E)) { (*_E)->ExceptionClear(_E); rc = ACR_TIMEUP; @@ -160,8 +168,10 @@ { int rc = ACR_ECLASSNOTFOUND; + if (IS_JOBJECT_NULL(_E, _O)) + return ACR_EINVAL; if (_clazzn.i && J4MID(0000)) { - CALL_METHOD2(0004, _O, ms, ns); + CALL_VMETHOD2(0004, _O, ms, ns); if ((*_E)->ExceptionCheck(_E)) { (*_E)->ExceptionClear(_E); rc = ACR_TIMEUP; @@ -174,8 +184,10 @@ ACR_DECLARE(void) ACR_ObjectFinalize(ACR_JNISTDARGS) { + if (IS_JOBJECT_NULL(_E, _O)) + return; if (_clazzn.i && J4MID(0000)) { - CALL_METHOD0(Void, 0006, _O); + CALL_VMETHOD0(0006, _O); } }