Mercurial > hg > truffle
changeset 22112:6203830a4f9a
Bugfix: createCachedAccess can throw an exception, so cacheLength must not be incremented before it returns
author | Christian Wimmer <christian.wimmer@oracle.com> |
---|---|
date | Wed, 26 Aug 2015 14:40:57 -0700 |
parents | 8b72dfac5cc7 |
children | 0aad723479e8 |
files | truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java |
diffstat | 1 files changed, 1 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java Wed Aug 26 14:39:11 2015 -0700 +++ b/truffle/com.oracle.truffle.api.interop/src/com/oracle/truffle/api/interop/ObjectAccessNode.java Wed Aug 26 14:40:57 2015 -0700 @@ -46,8 +46,8 @@ ForeignObjectAccessHeadNode nthParent = (ForeignObjectAccessHeadNode) NodeUtil.getNthParent(this, cacheLength); ObjectAccessNode first = nthParent.getFirst(); if (cacheLength < CACHE_SIZE) { + CachedObjectAccessNode createCachedAccess = createCachedAccess(receiver, nthParent.getAccessTree(), first); cacheLength++; - CachedObjectAccessNode createCachedAccess = createCachedAccess(receiver, nthParent.getAccessTree(), first); return first.replace(createCachedAccess).executeWith(frame, receiver, arguments); } else { return first.replace(createGenericAccess(nthParent.getAccessTree())).executeWith(frame, receiver, arguments);