summaryrefslogtreecommitdiff
path: root/src/string_bytes.cc
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2013-05-15 17:52:00 +0200
committerBen Noordhuis <info@bnoordhuis.nl>2013-05-16 17:25:24 +0200
commitf59ab10a6415e7dce7a6c3b6e734c213298ec205 (patch)
tree0bb6c686383da23ac6a2c73b23218a6296801b4c /src/string_bytes.cc
parent4cd643ee2d82d8bc2a4a7feab975b5c451ef692f (diff)
downloadandroid-node-v8-f59ab10a6415e7dce7a6c3b6e734c213298ec205.tar.gz
android-node-v8-f59ab10a6415e7dce7a6c3b6e734c213298ec205.tar.bz2
android-node-v8-f59ab10a6415e7dce7a6c3b6e734c213298ec205.zip
buffer, crypto: fix default encoding regression
The default encoding is 'buffer'. When the input is a string, treat it as 'binary'. Fixes the following assertion: node: ../src/string_bytes.cc:309: static size_t node::StringBytes::StorageSize(v8::Handle<v8::Value>, node::encoding): Assertion `0 && "buffer encoding specified but string provided"' failed. Introduced in 64fc34b2. Fixes #5482.
Diffstat (limited to 'src/string_bytes.cc')
-rw-r--r--src/string_bytes.cc17
1 files changed, 4 insertions, 13 deletions
diff --git a/src/string_bytes.cc b/src/string_bytes.cc
index 5c90ae26f1..90050dfcb5 100644
--- a/src/string_bytes.cc
+++ b/src/string_bytes.cc
@@ -220,7 +220,8 @@ size_t StringBytes::Write(char* buf,
break;
}
- case BINARY: {
+ case BINARY:
+ case BUFFER: {
// TODO(isaacs): THIS IS AWFUL!!!
uint16_t* twobytebuf = new uint16_t[buflen];
@@ -248,10 +249,6 @@ size_t StringBytes::Write(char* buf,
break;
}
- case BUFFER:
- assert(0 && "buffer encoding specified, but string provided");
- break;
-
default:
assert(0 && "unknown encoding");
break;
@@ -277,6 +274,7 @@ size_t StringBytes::StorageSize(Handle<Value> val, enum encoding encoding) {
switch (encoding) {
case BINARY:
+ case BUFFER:
case ASCII:
data_size = str->Length();
break;
@@ -305,10 +303,6 @@ size_t StringBytes::StorageSize(Handle<Value> val, enum encoding encoding) {
data_size = str->Length() / 2;
break;
- case BUFFER:
- assert(0 && "buffer encoding specified but string provided");
- break;
-
default:
assert(0 && "unknown encoding");
break;
@@ -331,6 +325,7 @@ size_t StringBytes::Size(Handle<Value> val, enum encoding encoding) {
switch (encoding) {
case BINARY:
+ case BUFFER:
case ASCII:
data_size = str->Length();
break;
@@ -357,10 +352,6 @@ size_t StringBytes::Size(Handle<Value> val, enum encoding encoding) {
data_size = str->Length() / 2;
break;
- case BUFFER:
- assert(0 && "buffer encoding specified by string provided");
- break;
-
default:
assert(0 && "unknown encoding");
break;