Currently, objArrayKlass::oop_iterate() and related methods use base() to get the actual starting address of the array. However, base() resolves the oop via barriers. oop_iterate() is used solely by GC code, which requires direct access to the array, no matter which copy, and thus needs to use base_raw() instead.