Implement bytes_size for DeltaStoreCore's DeltaType #79
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While testing my CascadeChain code I saw that the "DeltaType::bytes_size should not be called" warning was being printed by the servers every time I called a function that used Persistent's getDelta, like get() with a specific version. It turns out this is because getDelta passes the DeltaType object to mutils's deserialize_and_run, which internally calls bytes_size after calling from_bytes on its arguments. So DeltaType does have its bytes_size function called during normal operation, even though it is never serialized using to_bytes.
I implemented bytes_size to compute the same size as currentDeltaSize and currentDeltaToBytes would use (size of a size_t plus size of each object in the objects map), and it works for me. This is a cherry-pick of the change I made on cascade_chain, so it can be merged into the main branch independently of CascadeChain.