express: Fix Datagram::modify_array()

This just copies the array initialization out of append_data, so a
COW/uninitialized Datagram can be initialized with modify_array()
This commit is contained in:
Sam Edwards 2018-02-23 01:27:34 -07:00
parent 04cb128140
commit 10f1ffa9a7
1 changed files with 11 additions and 0 deletions

View File

@ -408,6 +408,17 @@ get_array() const {
*/
INLINE PTA_uchar Datagram::
modify_array() {
if (_data == (uchar *)NULL) {
// Create a new array.
_data = PTA_uchar::empty_array(0);
} else if (_data.get_ref_count() != 1) {
// Copy on write.
PTA_uchar new_data = PTA_uchar::empty_array(0);
new_data.v() = _data.v();
_data = new_data;
}
return _data;
}