diff --git a/src/producer.cc b/src/producer.cc index 8e20320a..4a778c04 100644 --- a/src/producer.cc +++ b/src/producer.cc @@ -7,6 +7,7 @@ * of the MIT license. See the LICENSE.txt file for details. */ +#include #include #include @@ -474,6 +475,7 @@ NAN_METHOD(Producer::NodeProduce) { size_t message_buffer_length; void* message_buffer_data; + static std::array empty_string{'\0'}; if (info[2]->IsNull()) { // This is okay for whatever reason @@ -497,9 +499,8 @@ NAN_METHOD(Producer::NodeProduce) { message_buffer_data = node::Buffer::Data(message_buffer_object); if (message_buffer_data == NULL) { // empty string message buffer should not end up as null message - v8::Local message_buffer_object_emptystring = Nan::NewBuffer(new char[0], 0).ToLocalChecked(); - message_buffer_length = node::Buffer::Length(message_buffer_object_emptystring); - message_buffer_data = node::Buffer::Data(message_buffer_object_emptystring); + message_buffer_length = 0; + message_buffer_data = reinterpret_cast(empty_string.data()); } } @@ -527,9 +528,8 @@ NAN_METHOD(Producer::NodeProduce) { key_buffer_data = node::Buffer::Data(key_buffer_object); if (key_buffer_data == NULL) { // empty string key buffer should not end up as null key - v8::Local key_buffer_object_emptystring = Nan::NewBuffer(new char[0], 0).ToLocalChecked(); - key_buffer_length = node::Buffer::Length(key_buffer_object_emptystring); - key_buffer_data = node::Buffer::Data(key_buffer_object_emptystring); + key_buffer_length = 0; + key_buffer_data = reinterpret_cast(empty_string.data()); } } else { // If it was a string just use the utf8 value.