From e98ceb7a80ef37f342dd3ed97ecc58f0118a08e0 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 5 Nov 2024 06:42:40 +0100 Subject: [PATCH 1/2] Use main_object in dynamic_object example --- examples/source/dynamic_object.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/source/dynamic_object.cpp b/examples/source/dynamic_object.cpp index 006f4c55..fc846080 100644 --- a/examples/source/dynamic_object.cpp +++ b/examples/source/dynamic_object.cpp @@ -10,14 +10,16 @@ struct dynamic_object { std::unordered_map entries; - void dynamic_set(std::string key, sol::stack_object value) { + // Uses main_object since we may get objects from coroutine + // threads that might die before us. + void dynamic_set(std::string key, sol::main_object value) { auto it = entries.find(key); if (it == entries.cend()) { entries.insert( it, { std::move(key), std::move(value) }); } else { - std::pair& kvp + std::pair& kvp = *it; sol::object& entry = kvp.second; entry = sol::object(std::move(value)); From 65f37ae1bd522b639ec4839a93b82cf53fec63f7 Mon Sep 17 00:00:00 2001 From: Marcus Tillmanns Date: Tue, 5 Nov 2024 06:49:00 +0100 Subject: [PATCH 2/2] Fix type --- examples/source/dynamic_object.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/source/dynamic_object.cpp b/examples/source/dynamic_object.cpp index fc846080..65d58089 100644 --- a/examples/source/dynamic_object.cpp +++ b/examples/source/dynamic_object.cpp @@ -19,7 +19,7 @@ struct dynamic_object { it, { std::move(key), std::move(value) }); } else { - std::pair& kvp + std::pair& kvp = *it; sol::object& entry = kvp.second; entry = sol::object(std::move(value));