/** @since 0.17 or earlier */ public ForeignAccess getForeignAccessFactory(DynamicObject object) { return getObjectType().getForeignAccessFactory(object); } }
/** @since 0.17 or earlier */ public ForeignAccess getForeignAccessFactory(DynamicObject object) { return getObjectType().getForeignAccessFactory(object); } }
public ForeignAccessFactory getForeignAccessFactory() { return getObjectType().getForeignAccessFactory(); } }
/** @since 0.17 or earlier */ @Override public int hashCode() { return getShape().getObjectType().hashCode(this); }
@Override public boolean equals(Object obj) { return getShape().getObjectType().equals(this, obj); }
/** @since 0.17 or earlier */ @Override public String toString() { return getShape().getObjectType().toString(this); }
/** @since 0.17 or earlier */ @Override public boolean equals(Object obj) { return getShape().getObjectType().equals(this, obj); }
@Override public String toString() { return getShape().getObjectType().toString(this); }
@Override public int hashCode() { return getShape().getObjectType().hashCode(this); }
public void visit(Object node, com.oracle.truffle.api.nodes.GraphPrintVisitor.GraphPrintAdapter printer) { if (!printer.visited(node)) { ShapeImpl s = (ShapeImpl) node; printer.createElementForNode(s); String name; if (isRootShape(s)) { name = ("ROOT(" + s.getObjectType() + ")"); } else { name = s.getTransitionFromParent().toString(); if (!s.isValid()) { name = INVALID + name; } } printer.setNodeProperty(s, "name", name); printer.setNodeProperty(s, "valid", s.isValid()); printer.setNodeProperty(s, "leaf", s.isLeaf()); printer.setNodeProperty(s, "identityHashCode", Integer.toHexString(System.identityHashCode(s))); printer.setNodeProperty(s, "objectType", s.getObjectType()); printer.setNodeProperty(s, "shared", s.isShared()); for (Entry<? extends Transition, ? extends ShapeImpl> entry : transitions.entrySet()) { ShapeImpl dst = entry.getValue(); IGVShapeVisitor.this.visitShape((dst)); assert printer.visited(dst); printer.connectNodes(s, dst, entry.getKey().toString()); } } } });
public void visit(Object node, com.oracle.truffle.api.nodes.GraphPrintVisitor.GraphPrintAdapter printer) { if (!printer.visited(node)) { ShapeImpl s = (ShapeImpl) node; printer.createElementForNode(s); String name; if (isRootShape(s)) { name = ("ROOT(" + s.getObjectType() + ")"); } else { name = s.getTransitionFromParent().toString(); if (!s.isValid()) { name = INVALID + name; } } printer.setNodeProperty(s, "name", name); printer.setNodeProperty(s, "valid", s.isValid()); printer.setNodeProperty(s, "leaf", s.isLeaf()); printer.setNodeProperty(s, "identityHashCode", Integer.toHexString(System.identityHashCode(s))); printer.setNodeProperty(s, "objectType", s.getObjectType()); printer.setNodeProperty(s, "shared", s.isShared()); for (Entry<? extends Transition, ? extends ShapeImpl> entry : transitions.entrySet()) { ShapeImpl dst = entry.getValue(); IGVShapeVisitor.this.visitShape((dst)); assert printer.visited(dst); printer.connectNodes(s, dst, entry.getKey().toString()); } } } });
/** @since 0.17 or earlier */ protected ShapeImpl directReplaceProperty(ShapeImpl shape, Property oldProperty, Property newProperty) { Transition replacePropertyTransition = new Transition.DirectReplacePropertyTransition(oldProperty, newProperty); ShapeImpl cachedShape = shape.queryTransition(replacePropertyTransition); if (cachedShape != null) { return ensureValid(cachedShape); } PropertyMap newPropertyMap = shape.getPropertyMap().replaceCopy(oldProperty, newProperty); BaseAllocator allocator = shape.allocator().addLocation(newProperty.getLocation()); ShapeImpl newShape = shape.createShape(shape.getLayout(), shape.getSharedData(), shape, shape.getObjectType(), newPropertyMap, replacePropertyTransition, allocator, shape.getId()); shape.addDirectTransition(replacePropertyTransition, newShape); return newShape; }
/** @since 0.17 or earlier */ protected ShapeImpl directReplaceProperty(ShapeImpl shape, Property oldProperty, Property newProperty) { Transition replacePropertyTransition = new Transition.DirectReplacePropertyTransition(oldProperty, newProperty); ShapeImpl cachedShape = shape.queryTransition(replacePropertyTransition); if (cachedShape != null) { return ensureValid(cachedShape); } PropertyMap newPropertyMap = shape.getPropertyMap().replaceCopy(oldProperty, newProperty); BaseAllocator allocator = shape.allocator().addLocation(newProperty.getLocation()); ShapeImpl newShape = shape.createShape(shape.getLayout(), shape.getSharedData(), shape, shape.getObjectType(), newPropertyMap, replacePropertyTransition, allocator, shape.getId()); shape.addDirectTransition(replacePropertyTransition, newShape); return newShape; }
private static void dumpIGV() { com.oracle.truffle.api.nodes.GraphPrintVisitor printer = new com.oracle.truffle.api.nodes.GraphPrintVisitor(); printer.beginGroup("shapes"); IGVShapeVisitor visitor = new IGVShapeVisitor(printer); for (ShapeImpl shape : getAllShapes()) { if (isRootShape(shape)) { printer.beginGraph(getId(shape) + " (" + calcShapeGraphSize(shape) + ") (" + shape.getObjectType() + ")"); visitor.visitShape(shape); printer.endGraph(); } } printer.beginGraph("all shapes"); for (ShapeImpl shape : getAllShapes()) { if (isRootShape(shape)) { visitor.visitShape(shape); } } printer.endGraph(); printer.endGroup(); printer.printToNetwork(false); }
private static void dumpIGV() { com.oracle.truffle.api.nodes.GraphPrintVisitor printer = new com.oracle.truffle.api.nodes.GraphPrintVisitor(); printer.beginGroup("shapes"); IGVShapeVisitor visitor = new IGVShapeVisitor(printer); for (ShapeImpl shape : getAllShapes()) { if (isRootShape(shape)) { printer.beginGraph(getId(shape) + " (" + calcShapeGraphSize(shape) + ") (" + shape.getObjectType() + ")"); visitor.visitShape(shape); printer.endGraph(); } } printer.beginGraph("all shapes"); for (ShapeImpl shape : getAllShapes()) { if (isRootShape(shape)) { visitor.visitShape(shape); } } printer.endGraph(); printer.endGroup(); printer.printToNetwork(false); }