From ee1d79a603c77c0667b27c075a983579d5c51f7e Mon Sep 17 00:00:00 2001 From: Sebastien Hertz Date: Fri, 21 Feb 2014 15:46:30 +0100 Subject: Cleanup transaction support Updates Thread::CreateInternalStackTrace to support both transactional and non-transactional modes using template. Generalizes non-transactional mode for invariant fields (which are set only once). Removes ArrayLog::VisitRoots as we never create Array logs of ObjectArray. As ObjectArray elements are set using Object::SetFieldObject, they are already recorded in the object logs: the object is the array itself and the offset corresponds to the element index in this array. And also checks we never log ObjectArray in array logs. Fixes location of thrown exception when calling native method during class initialization. Change-Id: Idbc368d3b8292b85ff40bc8a7c559e085477bf89 --- runtime/transaction.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'runtime/transaction.h') diff --git a/runtime/transaction.h b/runtime/transaction.h index cf696de..6fd86c8 100644 --- a/runtime/transaction.h +++ b/runtime/transaction.h @@ -118,7 +118,6 @@ class Transaction { void LogValue(size_t index, uint64_t value); void Undo(mirror::Array* obj) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_); - void VisitRoots(RootCallback* callback, void* arg); size_t Size() const { return array_values_.size(); @@ -145,6 +144,7 @@ class Transaction { }; InternStringLog(mirror::String* s, uint32_t hash_code, StringKind kind, StringOp op) : str_(s), hash_code_(hash_code), string_kind_(kind), string_op_(op) { + DCHECK(s != nullptr); } void Undo(InternTable* intern_table) EXCLUSIVE_LOCKS_REQUIRED(Locks::intern_table_lock_); -- cgit v1.1