Make CreateObjects take a pointer

PiperOrigin-RevId: 458449461
diff --git a/lifetime_analysis/object_repository.cc b/lifetime_analysis/object_repository.cc
index 5f9b0ea..f232d1e 100644
--- a/lifetime_analysis/object_repository.cc
+++ b/lifetime_analysis/object_repository.cc
@@ -175,7 +175,7 @@
     const Object* object =
         object_repository_.CreateObject(Lifetime::CreateLocal(), type);
     object_repository_.CreateObjects(
-        *object, type,
+        object, type,
         [](const clang::Expr*) { return Lifetime::CreateVariable(); },
         /*transitive=*/false);
     return object;
@@ -237,7 +237,7 @@
         object_repository_.CreateObject(lifetime, var->getType());
 
     object_repository_.CreateObjects(
-        *object, var->getType(), lifetime_factory,
+        object, var->getType(), lifetime_factory,
         /*transitive=*/clang::isa<clang::ParmVarDecl>(var) ||
             lifetime == Lifetime::Static());
 
@@ -272,7 +272,7 @@
         object_repository_.CreateObject(Lifetime::CreateLocal(), type);
 
     object_repository_.CreateObjects(
-        *object, type,
+        object, type,
         [](const clang::Expr*) { return Lifetime::CreateVariable(); },
         /*transitive=*/false);
 
@@ -462,7 +462,7 @@
   // For the return value, we only need to create field objects.
   return_object_ = CreateObject(Lifetime::CreateLocal(), func->getReturnType());
   CreateObjects(
-      *return_object_, func->getReturnType(),
+      return_object_, func->getReturnType(),
       [](const clang::Expr*) { return Lifetime::CreateLocal(); },
       /*transitive=*/false);
 
@@ -471,7 +471,7 @@
       this_object_ = CreateObject(Lifetime::CreateVariable(),
                                   method_decl->getThisObjectType());
       CreateObjects(
-          **this_object_, method_decl->getThisObjectType(),
+          *this_object_, method_decl->getThisObjectType(),
           [](const clang::Expr*) { return Lifetime::CreateVariable(); },
           /*transitive=*/true);
     }
@@ -698,13 +698,14 @@
   static_objects_[type] = object;
 
   CreateObjects(
-      *object, type, [](const clang::Expr*) { return Lifetime::Static(); },
+      object, type, [](const clang::Expr*) { return Lifetime::Static(); },
       true);
 
   return object;
 }
 
-void ObjectRepository::CreateObjects(Object root_object, clang::QualType type,
+void ObjectRepository::CreateObjects(const Object* root_object,
+                                     clang::QualType type,
                                      LifetimeFactory lifetime_factory,
                                      bool transitive) {
   class Visitor : public LifetimeVisitor {
@@ -798,7 +799,7 @@
   Visitor visitor(*this, transitive);
   VisitLifetimes(
       {root_object}, type,
-      ObjectLifetimes(root_object.GetLifetime(),
+      ObjectLifetimes(root_object->GetLifetime(),
                       ValueLifetimes::Create(type, lifetime_factory).get()),
       visitor);
 }
diff --git a/lifetime_analysis/object_repository.h b/lifetime_analysis/object_repository.h
index 159503a..02f5020 100644
--- a/lifetime_analysis/object_repository.h
+++ b/lifetime_analysis/object_repository.h
@@ -200,7 +200,7 @@
   const Object* CreateStaticObject(clang::QualType type);
 
  private:
-  void CreateObjects(Object root_object, clang::QualType type,
+  void CreateObjects(const Object* root_object, clang::QualType type,
                      LifetimeFactory lifetime_factory, bool transitive);
 
   const Object* CloneObject(const Object* object);