Skip to content

Commit 23fe325

Browse files
committed
Assert that sharing is correctly propagated for object fields
1 parent 9534849 commit 23fe325

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

src/main/java/org/truffleruby/language/objects/shared/ShareObjectNode.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,16 @@ protected void shareCached(DynamicObject object,
6363
for (ReadAndShareFieldNode readAndShareFieldNode : readAndShareFieldNodes) {
6464
readAndShareFieldNode.executeReadFieldAndShare(object);
6565
}
66+
67+
assert allFieldsAreShared(object);
68+
}
69+
70+
private boolean allFieldsAreShared(DynamicObject object) {
71+
for (DynamicObject value : ObjectGraph.getAdjacentObjects(object)) {
72+
assert SharedObjects.isShared(getContext(), value) : "unshared field in shared object: " + value;
73+
}
74+
75+
return true;
6676
}
6777

6878
@Specialization(guards = "updateShape(object)")

0 commit comments

Comments
 (0)