Lines Matching refs:Array
216 void Transaction::RecordWriteArray(mirror::Array* array, size_t index, uint64_t value) {
217 DCHECK(array != nullptr);
218 DCHECK(array->IsArrayInstance());
219 DCHECK(!array->IsObjectArray());
221 auto it = array_logs_.find(array);
224 it = array_logs_.emplace(array, std::move(log)).first;
287 // TODO we may not need to restore array allocated during this transaction. Or we could directly
351 typedef std::pair<mirror::Array*, mirror::Array*> ArrayPair;
355 mirror::Array* old_root = it.first;
357 mirror::Array* new_root = old_root;
364 // Update array logs with moving roots.
366 mirror::Array* old_root = pair.first;
367 mirror::Array* new_root = pair.second;
434 // Garbage collector needs to access object's class and array's length. So we don't rollback
442 field_offset.Uint32Value() == mirror::Array::LengthOffset().Uint32Value()) {
443 // Skip Array::length field.
620 void Transaction::ArrayLog::Undo(mirror::Array* array) const {
621 DCHECK(array != nullptr);
622 DCHECK(array->IsArrayInstance());
623 Primitive::Type type = array->GetClass()->GetComponentType()->GetPrimitiveType();
625 UndoArrayWrite(array, type, it.first, it.second);
629 void Transaction::ArrayLog::UndoArrayWrite(mirror::Array* array,
638 array->AsBooleanArray()->SetWithoutChecks<false, kCheckTransaction>(
642 array->AsByteArray()->SetWithoutChecks<false, kCheckTransaction>(
646 array->AsCharArray()->SetWithoutChecks<false, kCheckTransaction>(
650 array->AsShortArray()->SetWithoutChecks<false, kCheckTransaction>(
654 array->AsIntArray()->SetWithoutChecks<false, kCheckTransaction>(
658 array->AsFloatArray()->SetWithoutChecks<false, kCheckTransaction>(
662 array->AsLongArray()->SetWithoutChecks<false, kCheckTransaction>(
666 array->AsDoubleArray()->SetWithoutChecks<false, kCheckTransaction>(