From 4aa7c89aad96f58fcd31e7a545c70c60034eabf7 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Mon, 16 Oct 2023 00:49:14 +0200 Subject: [PATCH] Nanotracer: Add copy for object token Change-Id: I8d11284db1b38eeff6f271495f3095b49415f78c Reviewed-by: Tim Jenssen Reviewed-by: Qt CI Patch Build Bot --- src/libs/nanotrace/nanotracehr.h | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/libs/nanotrace/nanotracehr.h b/src/libs/nanotrace/nanotracehr.h index 620c94e49be..22a4deb613f 100644 --- a/src/libs/nanotrace/nanotracehr.h +++ b/src/libs/nanotrace/nanotracehr.h @@ -421,9 +421,25 @@ public: ObjectToken() = default; - ObjectToken(const ObjectToken &other) = delete; + ObjectToken(const ObjectToken &other) + : m_name{other.m_name} + , m_category{other.m_category} + { + if (other.m_id) + m_id = m_category->beginObject(m_name).m_id; + } - ObjectToken &operator=(const ObjectToken &other) = delete; + ObjectToken &operator=(const ObjectToken &other) + { + if (this != &other) { + ~ObjectToken(); + if (other.m_id) { + m_category = other.m_category; + m_name = other.m_name; + m_id = other.m_category->beginObject(other.m_name).m_id; + } + } + } ObjectToken(ObjectToken &&other) noexcept : m_name{std::move(other.m_name)}