From 6a72e525202972fe5d5a89cc94f48071380c1aa7 Mon Sep 17 00:00:00 2001 From: koichik Date: Mon, 17 Oct 2011 22:13:18 +0900 Subject: [PATCH] buffer: use NO_NULL_TERMINATION flag Refs #394. Fixes #1902. --- src/node_buffer.cc | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/node_buffer.cc b/src/node_buffer.cc index aeede2f..4188906 100644 --- a/src/node_buffer.cc +++ b/src/node_buffer.cc @@ -493,19 +493,12 @@ Handle Buffer::Utf8Write(const Arguments &args) { int written = s->WriteUtf8(p, max_length, &char_written, - String::HINT_MANY_WRITES_EXPECTED); + (String::HINT_MANY_WRITES_EXPECTED | + String::NO_NULL_TERMINATION)); constructor_template->GetFunction()->Set(chars_written_sym, Integer::New(char_written)); - if (written > 0 && p[written-1] == '\0' && char_written == length) { - uint16_t last_char; - s->Write(&last_char, length - 1, 1, String::NO_OPTIONS); - if (last_char != 0 || written > s->Utf8Length()) { - written--; - } - } - return scope.Close(Integer::New(written)); } @@ -538,7 +531,8 @@ Handle Buffer::Ucs2Write(const Arguments &args) { int written = s->Write(p, 0, max_length, - String::HINT_MANY_WRITES_EXPECTED); + (String::HINT_MANY_WRITES_EXPECTED | + String::NO_NULL_TERMINATION)); constructor_template->GetFunction()->Set(chars_written_sym, Integer::New(written)); @@ -576,7 +570,8 @@ Handle Buffer::AsciiWrite(const Arguments &args) { int written = s->WriteAscii(p, 0, max_length, - String::HINT_MANY_WRITES_EXPECTED); + (String::HINT_MANY_WRITES_EXPECTED | + String::NO_NULL_TERMINATION)); constructor_template->GetFunction()->Set(chars_written_sym, Integer::New(written)); -- 2.7.4