From 578545c5dd2c85c32dce7fdc6c40c465eae5268c Mon Sep 17 00:00:00 2001
From: Alan Dayton <dayton8@llnl.gov>
Date: Tue, 11 Mar 2025 10:46:47 -0700
Subject: [PATCH] Restore getActiveBasePointer

---
 RELEASE_NOTES.md          |  1 -
 src/chai/ManagedArray.hpp | 12 ++++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index fe27f3c0..ee9f1b8c 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -25,7 +25,6 @@ The format of this file is based on [Keep a Changelog](http://keepachangelog.com
 - Now respects allocators passed to ManagedArray constructors when CHAI\_DISABLE\_RM=TRUE.
 
 ### Removed
-- Removes ManagedArray::getActiveBasePointer method.
 - Removes deprecated ManagedArray::getPointer method. Use ManagedArray::data instead.
 - Removes ManagedArray::incr and ManagedArray::decr methods. Use ManagedArray::pick and ManagedArray::set instead.
 - Removes optional support for implicitly casting between raw pointers and ManagedArrays (CHAI\_ENABLE\_IMPLICIT\_CONVERSIONS). Use makeManagedArray and ManagedArray::data to perform explicit conversions instead.
diff --git a/src/chai/ManagedArray.hpp b/src/chai/ManagedArray.hpp
index 402135db..f76592a6 100644
--- a/src/chai/ManagedArray.hpp
+++ b/src/chai/ManagedArray.hpp
@@ -182,6 +182,12 @@ class ManagedArray : public CHAICopyable
   template <typename Idx>
   CHAI_HOST_DEVICE T& operator[](const Idx i) const;
 
+  /*!
+   * \brief get access to m_active_base_pointer
+   * @return a copy of m_active_base_pointer
+   */
+  CHAI_HOST_DEVICE T* getActiveBasePointer() const;
+
   /*!
    * \brief get access to m_active_pointer
    * @return a copy of m_active_pointer
@@ -474,6 +480,12 @@ ManagedArray<T> makeManagedArray(T* data,
   return array;
 }
 
+template <typename T>
+CHAI_HOST_DEVICE T* ManagedArray<T>::getActiveBasePointer() const
+{
+  return m_active_base_pointer;
+}
+
 template <typename T>
 CHAI_HOST_DEVICE T* ManagedArray<T>::getActivePointer() const
 {