Do not visit null object from transaction logs.

In debug build, it could cause check failure in MarkSweep::MarkObjectNonNull.

Change-Id: I840d1682e8150d7b04e83c7c25c340008dd82e70
diff --git a/runtime/transaction.cc b/runtime/transaction.cc
index 019a322..fcda6c9 100644
--- a/runtime/transaction.cc
+++ b/runtime/transaction.cc
@@ -157,7 +157,6 @@
 }
 
 void Transaction::VisitRoots(RootCallback* callback, void* arg) {
-  LOG(INFO) << "Transaction::VisitRoots";
   MutexLock mu(Thread::Current(), log_lock_);
   VisitObjectLogs(callback, arg);
   VisitArrayLogs(callback, arg);
@@ -310,8 +309,10 @@
     if (field_value.kind == ObjectLog::kReference) {
       mirror::Object* obj =
           reinterpret_cast<mirror::Object*>(static_cast<uintptr_t>(field_value.value));
-      callback(&obj, arg, 0, kRootUnknown);
-      field_value.value = reinterpret_cast<uintptr_t>(obj);
+      if (obj != nullptr) {
+        callback(&obj, arg, 0, kRootUnknown);
+        field_value.value = reinterpret_cast<uintptr_t>(obj);
+      }
     }
   }
 }