From e0080e340cef6ea32a939eeb2e9be03371ecfc58 Mon Sep 17 00:00:00 2001 From: David Beckingsale Date: Tue, 27 Mar 2018 15:34:45 -0700 Subject: [PATCH] Only copy data in touched spaces --- src/ArrayManager.inl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ArrayManager.inl b/src/ArrayManager.inl index 986688f6..bdd6c301 100644 --- a/src/ArrayManager.inl +++ b/src/ArrayManager.inl @@ -137,7 +137,9 @@ void* ArrayManager::reallocate(void* pointer, size_t elems) pointer_record->m_user_callback(ACTION_ALLOC, ExecutionSpace(space), sizeof(T) * elems); void* new_ptr = m_allocators[space]->allocate(sizeof(T)*elems); - rm.copy(old_ptr, new_ptr); + if (pointer_record->m_touched[space]) { + rm.copy(old_ptr, new_ptr); + } pointer_record->m_user_callback(ACTION_FREE, ExecutionSpace(space), sizeof(T) * elems); m_allocators[space]->deallocate(old_ptr);