Mercurial > hg > truffle
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 |