Similarly to G1 (JDK-8244684), ParallelGC young collections also use a compact representation of partial objarray scans, so that normal object scan tasks (oop* and narrowOop*) and partial objarray scan tasks can co-exist in the same taskqueue. And similarly to what was described in JDK-8244684, ParallelGC has its own similar private mechanism for doing so which similarly involves casting between oop and oop* and using misaligned oop* values.
JDK-8244684 provided a cleaner mechanism in shared code and used by G1. ParallelGC should be similarly changed to use the new shared mechanism.