comparison truffle/com.oracle.truffle.object/src/com/oracle/truffle/object/ShapeImpl.java @ 22157:dc83cc1f94f2

Using fully qualified imports
author Jaroslav Tulach <jaroslav.tulach@oracle.com>
date Wed, 16 Sep 2015 11:33:22 +0200
parents b59d06483580
children c8f4168061ea
comparison
equal deleted inserted replaced
22156:50056a161d7f 22157:dc83cc1f94f2
20 * or visit www.oracle.com if you need additional information or have any 20 * or visit www.oracle.com if you need additional information or have any
21 * questions. 21 * questions.
22 */ 22 */
23 package com.oracle.truffle.object; 23 package com.oracle.truffle.object;
24 24
25 import java.util.*; 25 import com.oracle.truffle.api.Assumption;
26 import java.util.concurrent.*; 26 import com.oracle.truffle.api.CompilerAsserts;
27 27 import com.oracle.truffle.api.CompilerDirectives;
28 import com.oracle.truffle.api.*;
29 import com.oracle.truffle.api.CompilerDirectives.CompilationFinal; 28 import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
30 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary; 29 import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
31 import com.oracle.truffle.api.interop.*; 30 import com.oracle.truffle.api.Truffle;
32 import com.oracle.truffle.api.nodes.*; 31 import com.oracle.truffle.api.interop.ForeignAccess;
33 import com.oracle.truffle.api.object.*; 32 import com.oracle.truffle.api.nodes.ExplodeLoop;
34 import com.oracle.truffle.api.utilities.*; 33 import com.oracle.truffle.api.object.DynamicObject;
34 import com.oracle.truffle.api.object.DynamicObjectFactory;
35 import com.oracle.truffle.api.object.Layout;
36 import com.oracle.truffle.api.object.Location;
37 import com.oracle.truffle.api.object.ObjectLocation;
38 import com.oracle.truffle.api.object.ObjectType;
39 import com.oracle.truffle.api.object.Property;
40 import com.oracle.truffle.api.object.Shape;
41 import com.oracle.truffle.api.object.ShapeListener;
42 import com.oracle.truffle.api.utilities.NeverValidAssumption;
35 import com.oracle.truffle.object.LocationImpl.InternalLongLocation; 43 import com.oracle.truffle.object.LocationImpl.InternalLongLocation;
36 import com.oracle.truffle.object.LocationImpl.LocationVisitor; 44 import com.oracle.truffle.object.LocationImpl.LocationVisitor;
37 import com.oracle.truffle.object.Locations.ConstantLocation; 45 import com.oracle.truffle.object.Locations.ConstantLocation;
38 import com.oracle.truffle.object.Locations.DeclaredDualLocation; 46 import com.oracle.truffle.object.Locations.DeclaredDualLocation;
39 import com.oracle.truffle.object.Locations.DeclaredLocation; 47 import com.oracle.truffle.object.Locations.DeclaredLocation;
43 import com.oracle.truffle.object.Transition.DirectReplacePropertyTransition; 51 import com.oracle.truffle.object.Transition.DirectReplacePropertyTransition;
44 import com.oracle.truffle.object.Transition.ObjectTypeTransition; 52 import com.oracle.truffle.object.Transition.ObjectTypeTransition;
45 import com.oracle.truffle.object.Transition.PropertyTransition; 53 import com.oracle.truffle.object.Transition.PropertyTransition;
46 import com.oracle.truffle.object.Transition.RemovePropertyTransition; 54 import com.oracle.truffle.object.Transition.RemovePropertyTransition;
47 import com.oracle.truffle.object.Transition.ReservePrimitiveArrayTransition; 55 import com.oracle.truffle.object.Transition.ReservePrimitiveArrayTransition;
56 import java.util.ArrayList;
57 import java.util.Collections;
58 import java.util.Iterator;
59 import java.util.LinkedList;
60 import java.util.List;
61 import java.util.ListIterator;
62 import java.util.Map;
63 import java.util.Objects;
64 import java.util.concurrent.ConcurrentHashMap;
48 65
49 /** 66 /**
50 * Shape objects create a mapping of Property objects to indexes. The mapping of those indexes to an 67 * Shape objects create a mapping of Property objects to indexes. The mapping of those indexes to an
51 * actual store is not part of Shape's role, but JSObject's. Shapes are immutable; adding or 68 * actual store is not part of Shape's role, but JSObject's. Shapes are immutable; adding or
52 * deleting a property yields a new Shape which links to the old one. This allows inline caching to 69 * deleting a property yields a new Shape which links to the old one. This allows inline caching to