You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the file cyber/transport/shm/protobuf_arena_manager.cc, a delete void* operation is performed. However, as void* is a pointer to a template class ArenaQueue and not a primitive value type, the destructor ~ArenaQueue() will not be invoked upon deletion of the map value.
Hi @ycraurora , Thanks for your issue, it seems a real bug.
ArenaQueue is only used to optimize lidar drivers currently, and ProtobufArenaManager has been DECLARE_SINGLETON, caused the problem is not fully exposed, we will verify this issue later.
Hi @ycraurora , Thanks for your issue, it seems a real bug. ArenaQueue is only used to optimize lidar drivers currently, and ProtobufArenaManager has been DECLARE_SINGLETON, caused the problem is not fully exposed, we will verify this issue later.
Thanks for your reply. Since deleting a void* is undefined behavior, clangd can catch this error with the message "Cannot delete expression with pointer-to-'void' type 'void *'clang(-Wdelete-incomplete)".
BTW, a simple way to fix this is to use std::shared_ptr<void> instead of void*. You may want to check it out.
In the file
cyber/transport/shm/protobuf_arena_manager.cc
, adelete void*
operation is performed. However, asvoid*
is a pointer to a template classArenaQueue
and not a primitive value type, the destructor~ArenaQueue()
will not be invoked upon deletion of the map value.The code
The text was updated successfully, but these errors were encountered: