Browse Source

fix wrong destroctor call

gjj
Zhicheng Wang 2 months ago
parent
commit
06481e2d0a
  1. 6
      blobtree_structure/src/blobtree.cpp

6
blobtree_structure/src/blobtree.cpp

@ -83,7 +83,11 @@ BS_API void clear_blobtree() noexcept
virtual_node_t push_primitive_node(primitive_node_t&& primitive_node)
{
primitives.emplace_back(std::move(primitive_node));
primitives.emplace_back(primitive_node);
primitive_node.desc =
nullptr; // NOTE: primitives.back().desc and primitive_node.desc share same memory, so when this
// function returns, primitive_node.desc will be invalidated, so as primitives.back().desc, which outputs
// errors. Thus, we manually set primitive_node.desc to nullptr to avoid this problem.
node_t node{standard_new_node};
node_fetch_primitive_index(node) = static_cast<uint32_t>(primitives.size() - 1);

Loading…
Cancel
Save