# HG changeset patch # User Andreas Woess # Date 1429532521 -7200 # Node ID de8880bbf2e10e9e061fdac9fc580ab9e2746f1d # Parent 50fe6a0c6f1d0ae536bbb3c9a66993cdd57ef04c Truffle: simplify getProperty; minor cleanup diff -r 50fe6a0c6f1d -r de8880bbf2e1 graal/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Property.java --- a/graal/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Property.java Mon Apr 20 11:02:30 2015 -0700 +++ b/graal/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/Property.java Mon Apr 20 14:22:01 2015 +0200 @@ -25,10 +25,8 @@ package com.oracle.truffle.api.object; /** - * Property objects represent the mapping between low-level stores and high-level data. The simplest - * Property could be nothing more than a map of one index to one property's value, but abstracting - * the interface allows for getter/setter methods, type-checked properties, and other such - * specialized and language-specific behavior. ECMAScript[8.6.1] + * Property objects represent the mapping between property identifiers (keys) and storage locations. + * Optionally, properties may have metadata attached to them. */ public abstract class Property { protected Property() { diff -r 50fe6a0c6f1d -r de8880bbf2e1 graal/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyImpl.java --- a/graal/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyImpl.java Mon Apr 20 11:02:30 2015 -0700 +++ b/graal/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyImpl.java Mon Apr 20 14:22:01 2015 +0200 @@ -28,10 +28,8 @@ import com.oracle.truffle.object.Locations.*; /** - * Property objects represent the mapping between low-level stores and high-level data. The simplest - * Property could be nothing more than a map of one index to one property's value, but abstracting - * the interface allows for getter/setter methods, type-checked properties, and other such - * specialized and language-specific behavior. ECMAScript[8.6.1] + * Property objects represent the mapping between property identifiers (keys) and storage locations. + * Optionally, properties may have metadata attached to them. */ public class PropertyImpl extends Property { private final Object key; diff -r 50fe6a0c6f1d -r de8880bbf2e1 graal/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyMap.java --- a/graal/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyMap.java Mon Apr 20 11:02:30 2015 -0700 +++ b/graal/com.oracle.truffle.object/src/com/oracle/truffle/object/PropertyMap.java Mon Apr 20 14:22:01 2015 +0200 @@ -296,7 +296,7 @@ } public PropertyMap removeCopy(Property value) { - LinkedList shelve = new LinkedList<>(); + Deque shelve = new ArrayDeque<>(); PropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(value)) { @@ -314,7 +314,7 @@ } public PropertyMap replaceCopy(Property oldValue, Property newValue) { - LinkedList shelve = new LinkedList<>(); + Deque shelve = new ArrayDeque<>(); PropertyMap current = this; while (!current.isEmpty()) { if (current.getLastProperty().equals(oldValue)) { diff -r 50fe6a0c6f1d -r de8880bbf2e1 graal/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java --- a/graal/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java Mon Apr 20 11:02:30 2015 -0700 +++ b/graal/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java Mon Apr 20 14:22:01 2015 +0200 @@ -276,14 +276,7 @@ @Override @TruffleBoundary public Property getProperty(Object key) { - PropertyMap current = this.propertyMap; - while (current.getLastProperty() != null) { - if (current.getLastProperty().getKey().equals(key)) { - return current.getLastProperty(); - } - current = current.getParentMap(); - } - return null; + return propertyMap.get(key); } protected final void addDirectTransition(Transition transition, ShapeImpl next) {