-
Type: Improvement
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
None
-
Fully Compatible
-
Execution Team 2019-07-15, Execution Team 2019-07-29, Execution Team 2019-08-12
The KeyString class uses a StackAllocator to build a buffer, which is not releasable (i.e. a full copy is required). In order to mitigate performance regressions, it will be necessary to create a version of the KeyString class with a releasable buffer in cases where it is known a KeyString::Value can be produced without a copy. We should modify KeyString so that it can be templated to have a releasable buffer or not.
Implement a release() function that is only available on a heap-allocated KeyString object, and returns an owned KeyString::Value without copying any data.