PatchSet 4426 Date: 2004/02/15 18:23:21 Author: dalibor Branch: HEAD Tag: (none) Log: Replaced part of macro by static inline function
2004-02-15 Dalibor Topic <[EMAIL PROTECTED]> * kaffe/kaffevm/verify.c (ensureLocalTypeErrorInVerifyBasicBlock): New static inline function. (ENSURE_LOCAL_TYPE) Use ensureLocalTypeErrorInVerifyBasicBlock. Removed unnecessary undef for VERIFY_ERROR. Members: ChangeLog:1.2009->1.2010 kaffe/kaffevm/verify.c:1.42->1.43 Index: kaffe/ChangeLog diff -u kaffe/ChangeLog:1.2009 kaffe/ChangeLog:1.2010 --- kaffe/ChangeLog:1.2009 Sun Feb 15 16:40:44 2004 +++ kaffe/ChangeLog Sun Feb 15 18:23:21 2004 @@ -1,6 +1,13 @@ 2004-02-15 Dalibor Topic <[EMAIL PROTECTED]> * kaffe/kaffevm/verify.c + (ensureLocalTypeErrorInVerifyBasicBlock): New static inline function. + (ENSURE_LOCAL_TYPE) Use ensureLocalTypeErrorInVerifyBasicBlock. + Removed unnecessary undef for VERIFY_ERROR. + +2004-02-15 Dalibor Topic <[EMAIL PROTECTED]> + + * kaffe/kaffevm/verify.c (verifyErrorInVerifyBasicBlock): New static inline function. (VERIFY_ERROR) Removed. Replaced use of VERIFY_ERROR by verifyErrorInVerifyBasicBlock. Index: kaffe/kaffe/kaffevm/verify.c diff -u kaffe/kaffe/kaffevm/verify.c:1.42 kaffe/kaffe/kaffevm/verify.c:1.43 --- kaffe/kaffe/kaffevm/verify.c:1.42 Sun Feb 15 16:40:45 2004 +++ kaffe/kaffe/kaffevm/verify.c Sun Feb 15 18:23:23 2004 @@ -2014,7 +2014,6 @@ #undef GET_WIDX #undef CHECK_POOL_IDX #undef ENSURE_NON_WIDE -#undef VERIFY_ERROR } @@ -2492,6 +2491,24 @@ } /* + * Helper function for error reporting in ENSURE_LOCAL_TYPE macro in verifyBasicBlock. + */ +static inline +bool +ensureLocalTypeErrorInVerifyBasicBlock(errorInfo* einfo, + const Method* method, + BlockInfo* block, + Hjava_lang_Class* this, + unsigned int n) +{ + if (block->locals[n].data.class == TUNSTABLE->data.class) { + return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access an unstable local variable"); + } else { + return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access a local variable not of the correct type"); + } +} + +/* * verifyBasicBlock() * Simulates execution of a basic block by modifying its simulated operand stack and local variable array. */ @@ -2547,11 +2564,7 @@ /* checks whether the specified local variable is of the specified type. */ #define ENSURE_LOCAL_TYPE(_N, _TINFO) \ if (!typecheck(einfo, this, (_TINFO), &block->locals[_N])) { \ - if (block->locals[_N].data.class == TUNSTABLE->data.class) { \ - return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access an unstable local variable"); \ - } else { \ - return verifyErrorInVerifyBasicBlock(einfo, method, this, "attempt to access a local variable not of the correct type"); \ - } \ + return ensureLocalTypeErrorInVerifyBasicBlock(einfo, method, block, this, _N); \ } /* only use with TLONG and TDOUBLE */ _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe