Github user jianqiao commented on a diff in the pull request:
https://github.com/apache/incubator-quickstep/pull/340#discussion_r182211596
--- Diff: storage/StorageErrors.hpp ---
@@ -61,9 +61,16 @@ class BlockMemoryTooSmall : public std::exception {
**/
class BlockNotFoundInMemory : public std::exception {
public:
+ BlockNotFoundInMemory(int block_id) : block_id_(block_id) {}
+
virtual const char* what() const throw() {
- return "BlockNotFoundInMemory: The specified block was not found in
memory";
+ std::string message = "BlockNotFoundInMemory: The specified block with
ID "
+ + std::to_string(block_id_ )+ " was not found in memory";
+ return message.c_str();
--- End diff --
The `message` object will be destructed at the end of this method -- so the
returned pointer is likely to be invalid.
As a fix we can have the `message` string stored as a member variable.
---