Skip to content

Commit

Permalink
Showing 2 changed files with 6 additions and 5 deletions.
Original file line number Diff line number Diff line change
@@ -122,8 +122,7 @@ public int eachObject(VirtualFrame frame, DynamicObject ofClass, DynamicObject b
int count = 0;

for (DynamicObject object : ObjectGraph.stopAndGetAllObjects(this, getContext())) {
final DynamicObject metaClass = Layouts.BASIC_OBJECT.getMetaClass(object);
if (!isHidden(object) && ModuleOperations.assignableTo(metaClass, ofClass)) {
if (!isHidden(object) && ModuleOperations.assignableTo(Layouts.BASIC_OBJECT.getMetaClass(object), ofClass)) {
yield(frame, block, object);
count++;
}
@@ -133,7 +132,7 @@ public int eachObject(VirtualFrame frame, DynamicObject ofClass, DynamicObject b
}

private boolean isHidden(DynamicObject object) {
return RubyGuards.isRubyClass(object) && Layouts.CLASS.getIsSingleton(object);
return !RubyGuards.isRubyBasicObject(object) || (RubyGuards.isRubyClass(object) && Layouts.CLASS.getIsSingleton(object));
}

}
Original file line number Diff line number Diff line change
@@ -108,8 +108,10 @@ public static void visitContextRoots(RubyContext context, Collection<DynamicObje
public static Set<DynamicObject> getAdjacentObjects(DynamicObject object) {
final Set<DynamicObject> reachable = new HashSet<>();

reachable.add(Layouts.BASIC_OBJECT.getLogicalClass(object));
reachable.add(Layouts.BASIC_OBJECT.getMetaClass(object));
if (Layouts.BASIC_OBJECT.isBasicObject(object)) {
reachable.add(Layouts.BASIC_OBJECT.getLogicalClass(object));
reachable.add(Layouts.BASIC_OBJECT.getMetaClass(object));
}

for (Property property : object.getShape().getPropertyListInternal(false)) {
final Object propertyValue = property.get(object, object.getShape());

0 comments on commit 4df7f20

Please sign in to comment.