mirror of
https://github.com/nodejs/node.git
synced 2026-11-09 15:11:11 -05:00
src: don't call DecodeWrite() on Buffers
Don't call DecodeWrite() with a Buffer as its argument because it in
turn calls StringBytes::Write() and that method expects a Local<String>.
"Why then does that function take a Local<Value>?" I hear you ask.
Good question but I don't have the answer. I added a CHECK for good
measure and what do you know, all of a sudden a large number of crypto
tests started failing.
Calling DecodeWrite(BINARY) on a buffer is nonsensical anyway: if you
want the contents of the buffer, just copy out the data, there is no
need to decode it - and that's exactly what this commit does.
Fixes a great many instances of the following run-time error in debug
builds:
FATAL ERROR: v8::String::Cast() Could not convert to string
This commit is contained in:
1 parent
e87ceb2b42
commit
c30cc4e3a5
2 files changed
+8
-28
No files matched your search
@@ -301,6 +301,7 @@ size_t StringBytes::Write(Isolate* isolate,
|
||||
size_t len = 0;
|
||||
bool is_extern = GetExternalParts(isolate, val, &data, &len);
|
||||
|
||||
CHECK(val->IsString() == true);
|
||||
Local<String> str = val.As<String>();
|
||||
len = len < buflen ? len : buflen;
|
||||
|
||||
|
||||
Reference in new issue
Block a user