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);