Skip to content

Commit 669984d

Browse files
committed
src: improve buffer.transcode performance
nodejs/node#54153
1 parent b108b64 commit 669984d

1 file changed

Lines changed: 28 additions & 1 deletion

File tree

patches/node/support_v8_sandboxed_pointers.patch

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ index 4ba261014695cf1aa8eb53b21a2873f4c4ea8e43..b695d131bcdc331974f544924138bb5e
118118
v8::Local<v8::ArrayBuffer> ToArrayBuffer(Environment* env);
119119

120120
diff --git a/src/node_i18n.cc b/src/node_i18n.cc
121-
index 2aa7cd98ecc179519a6bb1932dafa86a38bda4f5..ba6d87e4facf595bfdcd897155a35926f8b8db17 100644
121+
index 2aa7cd98ecc179519a6bb1932dafa86a38bda4f5..79376bef2e674f05fd95380dd419e8778cb98623 100644
122122
--- a/src/node_i18n.cc
123123
+++ b/src/node_i18n.cc
124124
@@ -106,7 +106,7 @@ namespace {
@@ -130,6 +130,33 @@ index 2aa7cd98ecc179519a6bb1932dafa86a38bda4f5..ba6d87e4facf595bfdcd897155a35926
130130
if (ret.IsEmpty())
131131
return ret;
132132

133+
@@ -183,7 +183,7 @@ MaybeLocal<Object> TranscodeLatin1ToUcs2(Environment* env,
134+
return {};
135+
}
136+
137+
- return Buffer::New(env, &destbuf);
138+
+ return Buffer::Copy(env, reinterpret_cast<char*>(destbuf.out()), destbuf.length() * sizeof(UChar));
139+
}
140+
141+
MaybeLocal<Object> TranscodeFromUcs2(Environment* env,
142+
@@ -228,7 +228,7 @@ MaybeLocal<Object> TranscodeUcs2FromUtf8(Environment* env,
143+
return {};
144+
}
145+
146+
- return Buffer::New(env, &destbuf);
147+
+ return Buffer::Copy(env, reinterpret_cast<char*>(destbuf.out()), destbuf.length() * sizeof(UChar));
148+
}
149+
150+
MaybeLocal<Object> TranscodeUtf8FromUcs2(Environment* env,
151+
@@ -252,7 +252,7 @@ MaybeLocal<Object> TranscodeUtf8FromUcs2(Environment* env,
152+
return {};
153+
}
154+
155+
- return Buffer::New(env, &destbuf);
156+
+ return Buffer::Copy(env, reinterpret_cast<char*>(destbuf.out()), destbuf.length() * sizeof(char));
157+
}
158+
159+
constexpr const char* EncodingName(const enum encoding encoding) {
133160
diff --git a/src/node_internals.h b/src/node_internals.h
134161
index 6264f23d54d6028bb0158f12a9296ba67a846358..613300215766aeb108219b0d1c3b95ee02db964f 100644
135162
--- a/src/node_internals.h

0 commit comments

Comments
 (0)