Lines Matching refs:Array
84 void Transaction::RecordWriteArray(mirror::Array* array, size_t index, uint64_t value) {
85 DCHECK(array != nullptr);
86 DCHECK(array->IsArrayInstance());
87 DCHECK(!array->IsObjectArray());
89 ArrayLog& array_log = array_logs_[array];
140 // TODO we may not need to restore array allocated during this transaction. Or we could directly
195 typedef std::pair<mirror::Array*, mirror::Array*> ArrayPair;
199 mirror::Array* old_root = it.first;
201 mirror::Array* new_root = old_root;
208 // Update array logs with moving roots.
210 mirror::Array* old_root = pair.first;
211 mirror::Array* new_root = pair.second;
261 // Garbage collector needs to access object's class and array's length. So we don't rollback
269 field_offset.Uint32Value() == mirror::Array::LengthOffset().Uint32Value()) {
270 // Skip Array::length field.
377 void Transaction::ArrayLog::Undo(mirror::Array* array) {
378 DCHECK(array != nullptr);
379 DCHECK(array->IsArrayInstance());
380 Primitive::Type type = array->GetClass()->GetComponentType()->GetPrimitiveType();
382 UndoArrayWrite(array, type, it.first, it.second);
386 void Transaction::ArrayLog::UndoArrayWrite(mirror::Array* array, Primitive::Type array_type,
392 array->AsBooleanArray()->SetWithoutChecks<false>(index, static_cast<uint8_t>(value));
395 array->AsByteArray()->SetWithoutChecks<false>(index, static_cast<int8_t>(value));
398 array->AsCharArray()->SetWithoutChecks<false>(index, static_cast<uint16_t>(value));
401 array->AsShortArray()->SetWithoutChecks<false>(index, static_cast<int16_t>(value));
404 array->AsIntArray()->SetWithoutChecks<false>(index, static_cast<int32_t>(value));
407 array->AsFloatArray()->SetWithoutChecks<false>(index, static_cast<float>(value));
410 array->AsLongArray()->SetWithoutChecks<false>(index, static_cast<int64_t>(value));
413 array->AsDoubleArray()->SetWithoutChecks<false>(index, static_cast<double>(value));