wip: do not enqueue empty objects
diff --git a/kotlin-native/runtime/src/gc/cms/cpp/ParallelMark.hpp b/kotlin-native/runtime/src/gc/cms/cpp/ParallelMark.hpp
index b9af474..9739731 100644
--- a/kotlin-native/runtime/src/gc/cms/cpp/ParallelMark.hpp
+++ b/kotlin-native/runtime/src/gc/cms/cpp/ParallelMark.hpp
@@ -92,6 +92,10 @@
}
static ALWAYS_INLINE bool tryEnqueue(MarkQueue& queue, ObjHeader* object) noexcept {
+ auto refFieldsCount = object->type_info()->objOffsetsCount_;
+ if (refFieldsCount == 0) {
+ return tryMark(object);
+ }
auto& objectData = objectDataForObject(object);
return compiler::gcMarkSingleThreaded() ? queue.tryPushLocal(objectData) : queue.tryPush(objectData);
}